Re: [PATCH v4 1/4] fs: fix missed removal of super_fs_objects_eligible()
From: Usama Arif
Date: Tue Sep 01 2026 - 06:28:29 EST
On 01/09/2026 03:21, Andrew Morton wrote:
> On Mon, 31 Aug 2026 10:28:00 +0800 Qi Zheng <qi.zheng@xxxxxxxxx> wrote:
>
>>> OK, please add this info to this patch's changelog. Please also decide
>>> whether a cc:stable should be added and if so, ensure the changelog
>>> makes clear why we're recommending a backport.
>>>
>>> As part of this, let's expand on "XFS will also run into issues".
>>
>> How about this instead:
>>
>> ---
>> Commit 0ef8faff490be ("fs: push nr_cached_objects memcg gating into
>> individual filesystems") was meant to drop the blanket memcg gate in
>> fs/super.c and let each ->nr_cached_objects() implementation decide
>> for itself whether it is meaningful in per-memcg reclaim. However,
>> when that patch was applied the removal of super_fs_objects_eligible()
>> and its two call sites in super_cache_scan() / super_cache_count() was
>> lost, so the helper is still gating every ->nr_cached_objects() hook
>> and 0ef8faff490be is effectively a no-op.
>>
>> Consequences of the leftover gate:
>>
>> - XFS's inode-reclaim hook, which is intentionally driven from
>> per-memcg contexts to free memcg-charged slab, is still
>> short-circuited in fs/super.c — exactly the regression from
>> commit 0baad6f9b997 ("fs/super: skip non-memcg-aware
>> nr_cached_objects in memcg slab shrink") that 0ef8faff490be was
>> written to undo. Memcg-charged XFS inode slab therefore keeps
>> piling up under per-memcg pressure until global reclaim kicks in.
>>
>> - Any future ->nr_cached_objects()/->free_cached_objects() that
>> grows memcg awareness is likewise blocked before it can run, so
>> filesystems cannot opt in to per-memcg reclaim on their own —
>> defeating the whole point of pushing the gating decision down
>> into the callbacks.
>>
>> Drop the leftover helper and its call sites so the intent of
>> 0ef8faff490be actually takes effect.
>>
>> Fixes: 0ef8faff490be ("fs: push nr_cached_objects memcg gating into
>> individual filesystems")
>> Cc: stable@xxxxxxxxxxxxxxx
>> ---
>>
>> Can you fix up the commit message directly on your end? Let me know if
>> you prefer me to spin a v5 instead.
>
> Thanks. I pasted this in and turned your [1/4] into a standalone patch
> for mm-hotfixes, with a cc:stable.
>
> The remaining three patches I turned into a separate series for the
> next merge window.
>
> This particular patch has no evidence of reviewer input yet?
>
>
> From: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx>
> Subject: fs: fix missed removal of super_fs_objects_eligible()
> Date: Mon, 17 Aug 2026 17:03:25 +0800
>
> Commit 0ef8faff490be ("fs: push nr_cached_objects memcg gating into
> individual filesystems") was meant to drop the blanket memcg gate in
> fs/super.c and let each ->nr_cached_objects() implementation decide for
> itself whether it is meaningful in per-memcg reclaim. However, when
> that patch was applied the removal of super_fs_objects_eligible() and
> its two call sites in super_cache_scan() / super_cache_count() was
> lost, so the helper is still gating every ->nr_cached_objects() hook
> and 0ef8faff490be is effectively a no-op.
>
> Consequences of the leftover gate:
>
> - XFS's inode-reclaim hook, which is intentionally driven from
> per-memcg contexts to free memcg-charged slab, is still
> short-circuited in fs/super.c exactly the regression from
> commit 0baad6f9b997 ("fs/super: skip non-memcg-aware
> nr_cached_objects in memcg slab shrink") that 0ef8faff490be was
> written to undo. Memcg-charged XFS inode slab therefore keeps
> piling up under per-memcg pressure until global reclaim kicks in.
>
> - Any future ->nr_cached_objects()/->free_cached_objects() that
> grows memcg awareness is likewise blocked before it can run, so
> filesystems cannot opt in to per-memcg reclaim on their own
> defeating the whole point of pushing the gating decision down
> into the callbacks.
>
> Drop the leftover helper and its call sites so the intent of
> 0ef8faff490be actually takes effect.
>
> Link: https://lore.kernel.org/cover.1786955972.git.zhengqi.arch@xxxxxxxxxxxxx
> Link: https://lore.kernel.org/3b038d373c70ebac7cdabfb0035bb91d1d6e6cfe.1786955972.git.zhengqi.arch@xxxxxxxxxxxxx
> Link: https://lore.kernel.org/all/20260715103516.2410175-1-usama.arif@xxxxxxxxx/ [0]
> Fixes: 0ef8faff490b ("fs: push nr_cached_objects memcg gating into individual filesystems")
> Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx>
> Cc: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx>
> Cc: Christian Brauner <brauner@xxxxxxxxxx>
> Cc: David Hildenbrand <david@xxxxxxxxxx>
> Cc: Hugh Dickins <hughd@xxxxxxxxxx>
> Cc: Christian Brauner <brauner@xxxxxxxxxx>
> Cc: David Hildenbrand <david@xxxxxxxxxx>
> Cc: Hugh Dickins <hughd@xxxxxxxxxx>
> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxxxx>
> Cc: Muchun Song <muchun.song@xxxxxxxxx>
> Cc: Roman Gushchin <roman.gushchin@xxxxxxxxx>
> Cc: Shakeel Butt <shakeel.butt@xxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
Yeah unfortunately this was a mess up with a part of the patch not being applied.
Acked-by: Usama Arif <usama.arif@xxxxxxxxx>