summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2020-10-17 17:25:52 +0200
committerJens Axboe <axboe@kernel.dk>2020-10-17 21:49:08 +0200
commit324bcf54c449c7b5b7024c9fa4549fbaaae1935d (patch)
tree03a41400fc0a67de4ef4f69987e39f39a53c7ba4 /virt
parentmm: mark async iocb read as NOWAIT once some data has been copied (diff)
downloadlinux-324bcf54c449c7b5b7024c9fa4549fbaaae1935d.tar.xz
linux-324bcf54c449c7b5b7024c9fa4549fbaaae1935d.zip
mm: use limited read-ahead to satisfy read
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: Johannes Weiner <hannes@cmpxchg.org> Reported-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reported-by: Hao_Xu <haoxu@linux.alibaba.com> [axboe: updated for new ractl API] Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions