summaryrefslogtreecommitdiffstats
path: root/include/target
diff options
context:
space:
mode:
authorMartin Svec <martin.svec@zoner.cz>2013-01-15 12:43:35 -0800
committerNicholas Bellinger <nab@linux-iscsi.org>2013-02-13 11:27:31 -0800
commit8f67835f1e389978bb0809d5e528961986aa2a69 (patch)
tree4bee48a706dec1da02e927309b6851f57730337c /include/target
parentd09816ae8fc05322b4e37a589537b4ecdca28a0d (diff)
downloadlinux-stable-8f67835f1e389978bb0809d5e528961986aa2a69.tar.gz
linux-stable-8f67835f1e389978bb0809d5e528961986aa2a69.tar.bz2
linux-stable-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