mm: add PSI accounting around ->read_folio and ->readahead calls
authorChristoph Hellwig <hch@lst.de>
Thu, 15 Sep 2022 09:41:56 +0000 (10:41 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 20 Sep 2022 14:24:38 +0000 (08:24 -0600)
commit176042404ee6a96ba7e9054e1bda6220360a26ad
tree26cda2b524748ba30e1d7604bb8d14bd21ba16c8
parente88480871b8d5a6bd14be2817063363202d282b9
mm: add PSI accounting around ->read_folio and ->readahead calls

PSI tries to account for the cost of bringing back in pages discarded by
the MM LRU management.  Currently the prime place for that is hooked into
the bio submission path, which is a rather bad place:

 - it does not actually account I/O for non-block file systems, of which
   we have many
 - it adds overhead and a layering violation to the block layer

Add the accounting into the two places in the core MM code that read
pages into an address space by calling into ->read_folio and ->readahead
so that the entire file system operations are covered, to broaden
the coverage and allow removing the accounting in the block layer going
forward.

As psi_memstall_enter can deal with nested calls this will not lead to
double accounting even while the bio annotations are still present.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Link: https://lore.kernel.org/r/20220915094200.139713-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/pagemap.h
mm/filemap.c
mm/readahead.c