On 2022/5/2 13:31, NeilBrown wrote: > > 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. Agree, there is no THP swap-in now. > > This patch should be squashed into > MM: handle THP in swap_*page_fs() > This patch looks good to me. Thanks! Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > Reported-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > Signed-off-by: NeilBrown <neilb@xxxxxxx> > --- > mm/page_io.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/mm/page_io.c b/mm/page_io.c > index d636a3531cad..1b8075ef3418 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); >