• Ming Lei's avatar
    block: blk-merge: fast-clone bio when splitting rw bios · 52cc6eea
    Ming Lei authored
    biovecs has become immutable since v3.13, so it isn't necessary
    to allocate biovecs for the new cloned bios, then we can save
    one extra biovecs allocation/copy, and the allocation is often
    not fixed-length and a bit more expensive.
    
    For example, if the 'max_sectors_kb' of null blk's queue is set
    as 16(32 sectors) via sysfs just for making more splits, this patch
    can increase throught about ~70% in the sequential read test over
    null_blk(direct io, bs: 1M).
    
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: Ming Lin <ming.l@ssi.samsung.com>
    Cc: Dongsu Park <dpark@posteo.net>
    Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
    
    This fixes a performance regression introduced by commit 54efd50b,
    and allows us to take full advantage of the fact that we have immutable
    bio_vecs. Hand applied, as it rejected violently with commit
    5014c311.
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    52cc6eea
blk-merge.c 16.9 KB