Re: [PATCH v5 1/9] mm: list_lru: fix set_shrinker_bit() call during race with cgroup deletion
From: Wei Yang
Date: Fri May 29 2026 - 22:38:20 EST
On Wed, May 27, 2026 at 04:45:08PM -0400, Johannes Weiner wrote:
>When list_lru_add() races with cgroup deletion, the shrinker bit is set
>on the wrong group and lost. This can cause a shrinker run to miss the
>cgroup that actually has the object.
>
>When the passed in memcg is dead, the function finds the first non-dead
>parent from the passed in memcg and adds the object there; but the
>shrinker bit is set on the memcg that was passed in.
>
This means we just miss to reclaim some obj, but won't crash the kernel.
>This bug is as old as the shrinker bitmap itself.
>
>Fix it by returning the "effective" memcg from the locking function, and
>have the caller use that.
>
>Fixes: fae91d6d8be5 ("mm/list_lru.c: set bit in memcg shrinker bitmap on first list_lru item appearance")
>Reported-by: Usama Arif <usama.arif@xxxxxxxxx>
>Reported-by: Sashiko
>Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx>
So we don't want to cc stable, right?
The fix looks right, so
Reviewed-by: Wei Yang <richard.weiyang@xxxxxxxxx>
--
Wei Yang
Help you, Help me