• Martin Svec's avatar
    target/rd: improve sg_table lookup scalability · 8f67835f
    Martin Svec authored
    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: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    8f67835f
target_core_rd.c 11.2 KB