• Wu Fengguang's avatar
    writeback: comment on the bdi dirty threshold · aed21ad2
    Wu Fengguang authored
    We do "floating proportions" to let active devices to grow its target
    share of dirty pages and stalled/inactive devices to decrease its target
    share over time.
    
    It works well except in the case of "an inactive disk suddenly goes
    busy", where the initial target share may be too small. To mitigate
    this, bdi_position_ratio() has the below line to raise a small
    bdi_thresh when it's safe to do so, so that the disk be feed with enough
    dirty pages for efficient IO and in turn fast rampup of bdi_thresh:
    
            bdi_thresh = max(bdi_thresh, (limit - dirty) / 8);
    
    balance_dirty_pages() normally does negative feedback control which
    adjusts ratelimit to balance the bdi dirty pages around the target.
    In some extreme cases when that is not enough, it will have to block
    the tasks completely until the bdi dirty pages drop below bdi_thresh.
    Acked-by: default avatarJan Kara <jack@suse.cz>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
    aed21ad2
page-writeback.c 59.2 KB