Re: [PATCH v3] mm/page_io: use sio->len for PSWPIN accounting in sio_read_complete()
From: Barry Song
Date: Wed Apr 01 2026 - 19:43:29 EST
On Wed, Apr 1, 2026 at 3:47 PM David Carlier <devnexen@xxxxxxxxx> wrote:
>
> sio_read_complete() uses sio->pages to account global PSWPIN vm events,
> but sio->pages tracks the number of bvec entries (folios), not base
> pages.
>
> While large folios cannot currently reach this path (SWP_FS_OPS and
> SWP_SYNCHRONOUS_IO are mutually exclusive, and mTHP swap-in allocation
> is gated on SWP_SYNCHRONOUS_IO), the accounting is semantically
> inconsistent with the per-memcg path which correctly uses
> folio_nr_pages().
>
> Use sio->len >> PAGE_SHIFT instead, which gives the correct base page
> count since sio->len is accumulated via folio_size(folio).
>
> Signed-off-by: David Carlier <devnexen@xxxxxxxxx>
LGTM,
Reviewed-by: Barry Song <baohua@xxxxxxxxxx>