Re: [PATCH v3 7/7] mm: switch deferred split shrinker to list_lru - [s390] panic in __memcg_list_lru_alloc
From: Mikhail Zaslonko
Date: Tue Mar 31 2026 - 04:13:18 EST
On 30-Mar-26 22:56, Johannes Weiner wrote:
> On Mon, Mar 30, 2026 at 04:41:16PM -0400, Johannes Weiner wrote:
>> Hello Mikhail,
>>
>
> Can you verify whether the kdump kernel boots with
> cgroup_disable=memory?
It was not a kdump, but s390 specific dump tool. Yes, here is the cmdline (forgot to include):
kernel parmline...: 'reset_devices cgroup_disable=memory nokaslr numa=off irqpoll nr_cpus=1'
>
> I think there is an issue with how we call __list_lru_init(). The
> existing callsites had their own memcg_kmem_online() guards. But the
> THP one does not, so we're creating a memcg-aware list_lru, but the
> do-while hierarchy walk in __memcg_list_lru_alloc() runs into a NULL
> memcg.
>
> Can you try the below on top of that -next checkout?
>
> diff --git a/mm/list_lru.c b/mm/list_lru.c
> index 1ccdd45b1d14..7c7024e33653 100644
> --- a/mm/list_lru.c
> +++ b/mm/list_lru.c
> @@ -637,7 +637,7 @@ int __list_lru_init(struct list_lru *lru, bool memcg_aware, struct shrinker *shr
> else
> lru->shrinker_id = -1;
>
> - if (mem_cgroup_kmem_disabled())
> + if (mem_cgroup_disabled() || mem_cgroup_kmem_disabled())
> memcg_aware = false;
> #endif
>
I confirm, this resolves the issue.
Thanks.