Re: [PATCH v3] mm/page_io: use sio->len for PSWPIN accounting in sio_read_complete()

From: Chris Li

Date: Wed Apr 01 2026 - 23:08:19 EST


On Wed, Apr 1, 2026 at 12:48 AM 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>

Acked-by: Chris Li <chrisl@xxxxxxxxxx>

Chris