• C
    bcache: don't set max writeback rate if gc is running · 141df8bb
    Coly Li 提交于
    When gc is running, user space I/O processes may wait inside
    bcache code, so no new I/O coming. Indeed this is not a real idle
    time, maximum writeback rate should not be set in such situation.
    Otherwise a faster writeback thread may compete locks with gc thread
    and makes garbage collection slower, which results a longer I/O
    freeze period.
    
    This patch checks c->gc_mark_valid in set_at_max_writeback_rate(). If
    c->gc_mark_valid is 0 (gc running), set_at_max_writeback_rate() returns
    false, then update_writeback_rate() will not set writeback rate to
    maximum value even c->idle_counter reaches an idle threshold.
    
    Now writeback thread won't interfere gc thread performance.
    Signed-off-by: NColy Li <colyli@suse.de>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    141df8bb
writeback.c 22.3 KB