• J
    mm: use limited read-ahead to satisfy read · 324bcf54
    Jens Axboe 提交于
    For the case where read-ahead is disabled on the file, or if the cgroup
    is congested, ensure that we can at least do 1 page of read-ahead to
    make progress on the read in an async fashion. This could potentially be
    larger, but it's not needed in terms of functionality, so let's error on
    the side of caution as larger counts of pages may run into reclaim
    issues (particularly if we're congested).
    
    This makes sure we're not hitting the potentially sync ->readpage() path
    for IO that is marked IOCB_WAITQ, which could cause us to block. It also
    means we'll use the same path for IO, regardless of whether or not
    read-ahead happens to be disabled on the lower level device.
    Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
    Reported-by: NMatthew Wilcox (Oracle) <willy@infradead.org>
    Reported-by: NHao_Xu <haoxu@linux.alibaba.com>
    [axboe: updated for new ractl API]
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    324bcf54
readahead.c 17.3 KB