Re: [PATCH 3/9] memcg: remove mem_cgroup_shrink_node()

From: Michal Hocko

Date: Thu Aug 13 2026 - 04:31:59 EST


On Tue 11-08-26 13:31:57, Shakeel Butt wrote:
> Its only caller was soft limit reclaim, which is gone.
>
> Signed-off-by: Shakeel Butt <shakeel.butt@xxxxxxxxx>

Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Thanks!

> ---
> mm/internal.h | 4 ----
> mm/vmscan.c | 41 -----------------------------------------
> 2 files changed, 45 deletions(-)
>
> diff --git a/mm/internal.h b/mm/internal.h
> index 678ce8d03515..b2315bdb7350 100644
> --- a/mm/internal.h
> +++ b/mm/internal.h
> @@ -85,10 +85,6 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg,
> gfp_t gfp_mask,
> unsigned int reclaim_options,
> int *swappiness);
> -unsigned long mem_cgroup_shrink_node(struct mem_cgroup *memcg,
> - gfp_t gfp_mask, bool noswap,
> - pg_data_t *pgdat,
> - unsigned long *nr_scanned);
>
> #ifdef CONFIG_NUMA
> extern int sysctl_min_unmapped_ratio;
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 032b14793d91..790b50c78a2e 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -6795,47 +6795,6 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
>
> #ifdef CONFIG_MEMCG
>
> -/* Only used by soft limit reclaim. Do not reuse for anything else. */
> -unsigned long mem_cgroup_shrink_node(struct mem_cgroup *memcg,
> - gfp_t gfp_mask, bool noswap,
> - pg_data_t *pgdat,
> - unsigned long *nr_scanned)
> -{
> - struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
> - struct scan_control sc = {
> - .nr_to_reclaim = SWAP_CLUSTER_MAX,
> - .target_mem_cgroup = memcg,
> - .may_writepage = 1,
> - .may_unmap = 1,
> - .reclaim_idx = MAX_NR_ZONES - 1,
> - .may_swap = !noswap,
> - };
> -
> - WARN_ON_ONCE(!current->reclaim_state);
> -
> - sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) |
> - (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK);
> -
> - trace_mm_vmscan_memcg_softlimit_reclaim_begin(sc.gfp_mask,
> - sc.order,
> - memcg);
> -
> - /*
> - * NOTE: Although we can get the priority field, using it
> - * here is not a good idea, since it limits the pages we can scan.
> - * if we don't reclaim here, the shrink_node from balance_pgdat
> - * will pick up pages from other mem cgroup's as well. We hack
> - * the priority and make it zero.
> - */
> - shrink_lruvec(lruvec, &sc);
> -
> - trace_mm_vmscan_memcg_softlimit_reclaim_end(sc.nr_reclaimed, memcg);
> -
> - *nr_scanned = sc.nr_scanned;
> -
> - return sc.nr_reclaimed;
> -}
> -
> unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg,
> unsigned long nr_pages,
> gfp_t gfp_mask,
> --
> 2.53.0-Meta

--
Michal Hocko
SUSE Labs