• Max Gurtovoy's avatar
    null_blk: add option for managing virtual boundary · cee1b215
    Max Gurtovoy authored
    This will enable changing the virtual boundary of null blk devices. For
    now, null blk devices didn't have any restriction on the scatter/gather
    elements received from the block layer. Add a module parameter and a
    configfs option that will control the virtual boundary. This will
    enable testing the efficiency of the block layer bounce buffer in case
    a suitable application will send discontiguous IO to the given device.
    
    Initial testing with patched FIO showed the following results (64 jobs,
    128 iodepth, 1 nullb device):
    IO size      READ (virt=false)   READ (virt=true)   Write (virt=false)  Write (virt=true)
    ----------  ------------------- -----------------  ------------------- -------------------
     1k            10.7M                8482k               10.8M              8471k
     2k            10.4M                8266k               10.4M              8271k
     4k            10.4M                8274k               10.3M              8226k
     8k            10.2M                8131k               9800k              7933k
     16k           9567k                7764k               8081k              6828k
     32k           8865k                7309k               5570k              5153k
     64k           7695k                6586k               2682k              2617k
     128k          5346k                5489k               1320k              1296k
    Signed-off-by: default avatarMax Gurtovoy <mgurtovoy@nvidia.com>
    Reviewed-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    Link: https://lore.kernel.org/r/20210412095523.278632-1-mgurtovoy@nvidia.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    cee1b215
main.c 49.7 KB