[PATCH v3 0/2] Honor XA_FLAGS_ACCOUNT in xas_split_alloc() and charge to folio's memcg

Zi Yan <[email protected]> Tue, 04 Aug 2026 17:04:26 -0400
Newsgroups gmane.linux.kernel.stable,gmane.linux.kernel,gmane.linux.file-systems,gmane.linux.kernel.mm
Message-ID <20260804-add-gfp_account-to-xas_split_alloc-v3-0-38cb3ff325c5@nvidia.com>
__GFP_ACCOUNT is needed for xarray node allocation accounting when
XA_FLAGS_ACCOUNT is set. Commit 7b785645e8f13 ("mm: fix page cache
convergence regression") fixed a workingset regression with it.
xas_split_alloc() does not have it and needs to be fixed.

In addition, based on Sashiko's review[1] and Johannes' confirmation[2], to
charge the right memcg, folio's memcg needs to be active during folio
split. Add that before adding __GFP_ACCOUNT.

There is no workingset convergence regression related to missing
__GFP_ACCOUNT in xas_split_alloc() and the impact to userspace should be
minor.

Both patches need be applied on top of the mapping_set_update() fix[3] to
avoid causing the same issue for uniform split path.

Link: https://sashiko.dev/#/patchset/20260727-add-gfp_account-to-xas_split_alloc-v1-1-9fae6bf64838%40nvidia.com?part=1 [1]
Link: https://lore.kernel.org/all/[email protected]/ [2]
Link: https://lore.kernel.org/all/[email protected]/ [3]

Signed-off-by: Zi Yan <[email protected]>
---
Changes in v3:
1. Cc stable
2. clarified Patch 2's commit message
- Link to v2: https://lore.kernel.org/r/20260730-add-gfp_account-to-xas_split_alloc-v2-0-5a56c2361d85@nvidia.com

Changes in v2:
1. added memcg switch code to __folio_split() to make __GFP_ACCOUNT charge
   to the right memcg.
2. removed RFC.
- Link to v1: https://lore.kernel.org/r/20260727-add-gfp_account-to-xas_split_alloc-v1-1-9fae6bf64838@nvidia.com

---
Zi Yan (2):
      mm/huge_memory: use folio's memcg inside __folio_split()
      xarray: honor XA_FLAGS_ACCOUNT in xas_split_alloc()

 lib/xarray.c     |  3 +++
 mm/huge_memory.c | 20 ++++++++++++++++----
 2 files changed, 19 insertions(+), 4 deletions(-)
---
base-commit: 34cacd0ac7c10dc9e34e1b9f28a2b78d335cb487
change-id: 20260727-add-gfp_account-to-xas_split_alloc-83a1bc848b77

Best regards,
-- 
Yan, Zi