• Shaohua Li's avatar
    block: immediately dispatch big size request · 50d24c34
    Shaohua Li authored
    Currently block plug holds up to 16 non-mergeable requests. This makes
    sense if the request size is small, eg, reduce lock contention. But if
    request size is big enough, we don't need to worry about lock
    contention. Holding such request makes no sense and it lows the disk
    utilization.
    
    In practice, this improves 10% throughput for my raid5 sequential write
    workload.
    
    The size (128k) is arbitrary right now, but it makes sure lock
    contention is small. This probably could be more intelligent, eg, check
    average request size holded. Since this is mainly for sequential IO,
    probably not worthy.
    
    V2: check the last request instead of the first request, so as long as
    there is one big size request we flush the plug.
    Signed-off-by: default avatarShaohua Li <shli@fb.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    50d24c34
blk-core.c 92.9 KB