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 <neilb@suse.de>
Reported-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
NeilBrown 2022-05-09 18:20:49 -07:00 committed by akpm
parent a1a0dfd56f
commit 6341a446a0
1 changed files with 4 additions and 2 deletions

View File

@ -280,8 +280,10 @@ static void sio_write_complete(struct kiocb *iocb, long ret)
set_page_dirty(page); set_page_dirty(page);
ClearPageReclaim(page); ClearPageReclaim(page);
} }
} else } else {
count_vm_events(PSWPOUT, sio->pages); for (p = 0; p < sio->pages; p++)
count_swpout_vm_event(sio->bvec[p].bv_page);
}
for (p = 0; p < sio->pages; p++) for (p = 0; p < sio->pages; p++)
end_page_writeback(sio->bvec[p].bv_page); end_page_writeback(sio->bvec[p].bv_page);