Re: [PATCH 1/2] mm/zswap: Fix global shrinker when memory cgroup is disabled
From: Andrew Morton
Date: Tue Jul 14 2026 - 22:32:01 EST
On Tue, 14 Jul 2026 09:52:59 -0700 Yosry Ahmed <yosry@xxxxxxxxxx> wrote:
> > When memory cgroup is disabled, mem_cgroup_iter() always returns NULL.
> > Therefore, the global shrinker shrink_worker() always takes the !memcg
> > branch. After MAX_RECLAIM_RETRIES empty walks, the worker simply gives up,
> > so it fails to write back anything.
> >
> > Therefore, when memory cgroup is disabled, fall through with the !memcg
> > branch and shrink the root memcg directly.
> >
> > With memcg disabled, shrink_memcg() only returns -ENOENT when the root
> > LRU is empty, which means the total pages are already below thr. The
> > loop then safely bails out via the zswap_total_pages() <= thr check.
> > For any other return value from shrink_memcg(), the loop is guaranteed
> > to terminate, either after MAX_RECLAIM_RETRIES failures or once the
> > threshold is met.
> >
> > Fixes: a65b0e7607cc ("zswap: make shrinking memcg-aware")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Suggested-by: Nhat Pham <nphamcs@xxxxxxxxx>
> > Acked-by: Nhat Pham <nphamcs@xxxxxxxxx>
> > Acked-by: Yosry Ahmed <yosry@xxxxxxxxxx>
> > Reported-by: Yosry Ahmed <yosry@xxxxxxxxxx>
> > Closes: https://lore.kernel.org/all/CAO9r8zPVzMKFbCixxD-qgtRrkFxWVrHiZZeLc=eyTPKPVQgX4g@xxxxxxxxxxxxxx
> > Signed-off-by: Hao Jia <jiahao1@xxxxxxxxxxx>
>
> Patch 2 doesn't really depend on this one, right?
>
> If that's the case I think this can (and should be) picked up
> separately as a hotfix. Andrew, WDYT?
Please update the changelog to clearly describe the userspace-visible
effects of the bug, thanks.
Also, AI review has flagged several possible issues, all appear to be
serious:
https://sashiko.dev/#/patchset/20260714081510.16895-1-jiahao.kernel@xxxxxxxxx