From: NeilBrown Date: Tue, 10 May 2022 01:20:49 +0000 (-0700) Subject: MM: handle THP in swap_*page_fs() - count_vm_events() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6341a446a0e66355d729b663d7c8ca28ad6d1442;p=linux.git MM: handle THP in swap_*page_fs() - count_vm_events() We need to use count_swpout_vm_event() for sio_write_complete() to get correct counting. Note that THP swap in (if it ever happens) is current accounted 1 for each page, whether HUGE or normal. This is different from swap-out accounting. This patch should be squashed into MM: handle THP in swap_*page_fs() Link: https://lkml.kernel.org/r/165146948934.24404.5909750610552745025@noble.neil.brown.name Signed-off-by: NeilBrown Reported-by: Miaohe Lin Reviewed-by: Miaohe Lin Cc: Geert Uytterhoeven Cc: Christoph Hellwig Cc: Matthew Wilcox Cc: Yang Shi Cc: Huang Ying Signed-off-by: Andrew Morton --- diff --git a/mm/page_io.c b/mm/page_io.c index d636a3531cad1..1b8075ef34183 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -280,8 +280,10 @@ static void sio_write_complete(struct kiocb *iocb, long ret) set_page_dirty(page); ClearPageReclaim(page); } - } else - count_vm_events(PSWPOUT, sio->pages); + } else { + for (p = 0; p < sio->pages; p++) + count_swpout_vm_event(sio->bvec[p].bv_page); + } for (p = 0; p < sio->pages; p++) end_page_writeback(sio->bvec[p].bv_page);