target/rd: improve sg_table lookup scalability
authorMartin Svec <martin.svec@zoner.cz>
Tue, 15 Jan 2013 20:43:35 +0000 (12:43 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 13 Feb 2013 19:27:31 +0000 (11:27 -0800)
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>

No differences found