• Bodo Stroesser's avatar
    scsi: target: tcmu: Support DATA_BLOCK_SIZE = N * PAGE_SIZE · f5ce815f
    Bodo Stroesser authored
    Change tcmu to support DATA_BLOCK_SIZE being a multiple of PAGE_SIZE. There
    are two reasons why one would like to have a bigger DATA_BLOCK_SIZE:
    
     1) If userspace - e.g. due to data compression, encryption or
        deduplication - needs to have receive or transmit data in a consecutive
        buffer, we can define DATA_BLOCK_SIZE to the maximum size of a SCSI
        READ/WRITE to enforce that userspace sees just one consecutive
        buffer. That way we can avoid the need for doing data copy in
        userspace.
    
     2) Using a bigger data block size can speed up command processing in
        tcmu. The number of free data blocks to look up in bitmap is reduced
        substantially. The lookup for data pages in radix_tree can be done more
        efficiently if there are multiple pages in a data block. The maximum
        number of IOVs to set up is lower so cmd entries in the ring become
        smaller.
    
    Link: https://lore.kernel.org/r/20210324195758.2021-4-bostroesser@gmail.comSigned-off-by: default avatarBodo Stroesser <bostroesser@gmail.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    f5ce815f
target_core_user.c 78 KB