Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Honor XA_FLAGS_ACCOUNT in xas_split_alloc() and charge to folio's memcg
@ 2026-07-31  2:17 Zi Yan
  2026-07-31  2:18 ` [PATCH v2 1/2] mm/huge_memory: use folio's memcg inside __folio_split() Zi Yan
  2026-07-31  2:18 ` [PATCH v2 2/2] xarray: honor XA_FLAGS_ACCOUNT in xas_split_alloc() Zi Yan
  0 siblings, 2 replies; 7+ messages in thread
From: Zi Yan @ 2026-07-31  2:17 UTC (permalink / raw)
  To: Johannes Weiner, Andrew Morton, Matthew Wilcox, William Kucharski,
	David Hildenbrand, Lorenzo Stoakes, Baolin Wang, Liam R. Howlett,
	Nico Pache, Ryan Roberts, Dev Jain, Barry Song, Lance Yang,
	Usama Arif
  Cc: linux-kernel, linux-fsdevel, linux-mm, Zi Yan

__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/amtcBZ-_QVRgCd6b@cmpxchg.org/ [2]
Link: https://lore.kernel.org/all/20260725101419.3938406-1-matt@readmodwrite.com/ [3]

Signed-off-by: Zi Yan <ziy@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



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-01  9:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31  2:17 [PATCH v2 0/2] Honor XA_FLAGS_ACCOUNT in xas_split_alloc() and charge to folio's memcg Zi Yan
2026-07-31  2:18 ` [PATCH v2 1/2] mm/huge_memory: use folio's memcg inside __folio_split() Zi Yan
2026-08-01  6:57   ` Johannes Weiner
2026-08-01  9:36   ` Lorenzo Stoakes (ARM)
2026-07-31  2:18 ` [PATCH v2 2/2] xarray: honor XA_FLAGS_ACCOUNT in xas_split_alloc() Zi Yan
2026-08-01  6:58   ` Johannes Weiner
2026-08-01  9:38   ` Lorenzo Stoakes (ARM)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox