Re: [PATCH v2] mm/huge_memory: Initialise workingset state before folio split
From: Andrew Morton
Date: Sat Jul 25 2026 - 20:53:45 EST
On Sat, 25 Jul 2026 11:14:19 +0100 Matt Fleming <matt@xxxxxxxxxxxxxxxx> wrote:
> xas_try_split() adds __GFP_ACCOUNT for page-cache xa_nodes, but
> __folio_split() leaves the xa_state's xa_lru unset. That lets a live,
> memcg-charged xa_node exist without being linked into the mapping's
> shadow_nodes list_lru; when reclaim later walks the list_lru it trips
> VM_WARN_ON(!css_is_dying()).
>
> Use mapping_set_update() to install both the workingset update callback
> and the shadow_nodes list_lru on the xa_state.
Thanks, I'll queue this as a hotfix.
Sashiko is wrong, methinks. "Calling local_irq_disable() strictly
disables hardware interrupts" isn't true on PREEMPT_RT.
https://sashiko.dev/#/patchset/20260725101419.3938406-1-matt@xxxxxxxxxxxxxxxx