Re: [PATCH 7/9] memcg: remove the per-node soft limit tree fields

From: Michal Hocko

Date: Thu Aug 13 2026 - 04:29:47 EST


On Tue 11-08-26 13:32:01, Shakeel Butt wrote:
> tree_node, usage_in_excess and on_tree only existed for the soft limit
> rbtree. They also doubled as the buffer between the read-mostly head of
> struct mem_cgroup_per_node and its update-often tail, so replace them
> with the explicit padding that CONFIG_MEMCG_V1=n already used.
>
> Signed-off-by: Shakeel Butt <shakeel.butt@xxxxxxxxx>

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

> ---
> include/linux/memcontrol.h | 13 -------------
> 1 file changed, 13 deletions(-)
>
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> index 7b02f1b3bb88..ce24e04967d8 100644
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -95,20 +95,7 @@ struct mem_cgroup_per_node {
> struct lruvec_stats *lruvec_stats;
> struct shrinker_info __rcu *shrinker_info;
>
> -#ifdef CONFIG_MEMCG_V1
> - /*
> - * Memcg-v1 only stuff in middle as buffer between read mostly fields
> - * and update often fields to avoid false sharing. If v1 stuff is
> - * not present, an explicit padding is needed.
> - */
> -
> - struct rb_node tree_node; /* RB tree node */
> - unsigned long usage_in_excess;/* Set to the value by which */
> - /* the soft limit is exceeded*/
> - bool on_tree;
> -#else
> CACHELINE_PADDING(_pad1_);
> -#endif
>
> /* Fields which get updated often at the end. */
> struct lruvec lruvec;
> --
> 2.53.0-Meta

--
Michal Hocko
SUSE Labs