diff options
author | Martin Svec <martin.svec@zoner.cz> | 2013-01-15 21:43:35 +0100 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-02-13 20:27:31 +0100 |
commit | 8f67835f1e389978bb0809d5e528961986aa2a69 (patch) | |
tree | 4bee48a706dec1da02e927309b6851f57730337c /include/target | |
parent | target: Remove never-used TMR_FABRIC_TMR enum value (diff) | |
download | linux-8f67835f1e389978bb0809d5e528961986aa2a69.tar.xz linux-8f67835f1e389978bb0809d5e528961986aa2a69.zip |
target/rd: improve sg_table lookup scalability
Sequential scan of rd_dev->sg_table_array in rd_get_sg_table is
a serious I/O performance bottleneck for large rd LUNs. Fix this
by computing the sg_table index directly from page offset because
all sg_tables (except the last one) have the same number of pages.
Tested with 90 GiB rd_mcp LUN, where the patch improved maximal
random R/W IOPS by more than 100-150%, depending on actual
hardware and SAN setup.
Signed-off-by: Martin Svec<martin.svec@zoner.cz>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'include/target')
0 files changed, 0 insertions, 0 deletions