All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shakeel Butt <shakeel.butt@linux.dev>
To: Alexandre Ghiti <alex@ghiti.fr>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	 Johannes Weiner <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@kernel.org>,
	 Roman Gushchin <roman.gushchin@linux.dev>,
	Muchun Song <muchun.song@linux.dev>,
	 Dennis Zhou <dennis@kernel.org>, Tejun Heo <tj@kernel.org>,
	Christoph Lameter <cl@gentwo.org>,
	 Vlastimil Babka <vbabka@kernel.org>,
	Yosry Ahmed <yosry@kernel.org>, Nhat Pham <nphamcs@gmail.com>,
	 Sergey Senozhatsky <senozhatsky@chromium.org>,
	Chengming Zhou <chengming.zhou@linux.dev>,
	 Suren Baghdasaryan <surenb@google.com>,
	Qi Zheng <qi.zheng@linux.dev>,
	 David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	 Minchan Kim <minchan@kernel.org>,
	Mike Rapoport <rppt@kernel.org>,
	 Axel Rasmussen <axelrasmussen@google.com>,
	Barry Song <baohua@kernel.org>, Kairui Song <kasong@tencent.com>,
	 Wei Xu <weixugc@google.com>, Yuanchu Xie <yuanchu@google.com>,
	 "Liam R . Howlett" <Liam.Howlett@oracle.com>,
	Joshua Hahn <joshua.hahnjy@gmail.com>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	cgroups@vger.kernel.org
Subject: Re: [PATCH 4/8] mm: memcontrol: track MEMCG_KMEM per NUMA node
Date: Thu, 21 May 2026 10:28:19 -0700	[thread overview]
Message-ID: <ag9AY2SrcsE1B3Ti@linux.dev> (raw)
In-Reply-To: <20260511202136.330358-5-alex@ghiti.fr>

On Mon, May 11, 2026 at 10:20:39PM +0200, Alexandre Ghiti wrote:
> This patch gets rid of MEMCG_KMEM and wires all the "generic" functions
> by introducing per-node obj_cgroup objects.
> 
> Note that it does not convert the kmem users to proper per-memcg-per-node
> accounting now, this is done in upcoming patches.
> 
> Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
> ---
>  include/linux/memcontrol.h | 23 ++++++++++----
>  include/linux/mmzone.h     |  1 +
>  mm/memcontrol.c            | 64 ++++++++++++++++++++++++--------------
>  mm/vmstat.c                |  1 +
>  4 files changed, 59 insertions(+), 30 deletions(-)
> 
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> index 568ab08f42af..17cf823160e4 100644
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -35,7 +35,6 @@ enum memcg_stat_item {
>  	MEMCG_SWAP = NR_VM_NODE_STAT_ITEMS,
>  	MEMCG_SOCK,
>  	MEMCG_PERCPU_B,
> -	MEMCG_KMEM,
>  	MEMCG_ZSWAP_B,
>  	MEMCG_ZSWAPPED,
>  	MEMCG_ZSWAP_INCOMP,
> @@ -126,9 +125,10 @@ struct mem_cgroup_per_node {
>  	struct list_head objcg_list;
>  
>  #ifdef CONFIG_MEMCG_NMI_SAFETY_REQUIRES_ATOMIC
> -	/* slab stats for nmi context */
> +	/* slab and kmem stats for nmi context */
>  	atomic_t		slab_reclaimable;
>  	atomic_t		slab_unreclaimable;
> +	atomic_t		kmem;
>  #endif
>  };
>  
> @@ -190,6 +190,7 @@ struct obj_cgroup {
>  		struct rcu_head rcu;
>  	};
>  	bool is_root;
> +	int nid;
>  };
>  
>  /*
> @@ -254,10 +255,6 @@ struct mem_cgroup {
>  	atomic_long_t		memory_events[MEMCG_NR_MEMORY_EVENTS];
>  	atomic_long_t		memory_events_local[MEMCG_NR_MEMORY_EVENTS];
>  
> -#ifdef CONFIG_MEMCG_NMI_SAFETY_REQUIRES_ATOMIC
> -	/* MEMCG_KMEM for nmi context */
> -	atomic_t		kmem_stat;
> -#endif
>  	/*
>  	 * Hint of reclaim pressure for socket memroy management. Note
>  	 * that this indicator should NOT be used in legacy cgroup mode
> @@ -776,6 +773,20 @@ static inline void obj_cgroup_put(struct obj_cgroup *objcg)
>  		percpu_ref_put(&objcg->refcnt);
>  }
>  
> +static inline struct obj_cgroup *obj_cgroup_get_nid(struct obj_cgroup *objcg,
> +						    int nid)
> +{
> +	struct obj_cgroup *nid_objcg;
> +	struct mem_cgroup *memcg;
> +
> +	rcu_read_lock();
> +	memcg = obj_cgroup_memcg(objcg);
> +	nid_objcg = rcu_dereference(memcg->nodeinfo[nid]->objcg);
> +	rcu_read_unlock();
> +
> +	return nid_objcg;

What is guarating the life of nid_objcg?


  reply	other threads:[~2026-05-21 17:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-11 20:20 [PATCH 0/8] per-memcg-per-node kmem accounting Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 1/8] mm: memcontrol: propagate NMI slab stats to memcg vmstats Alexandre Ghiti
2026-05-11 22:49   ` Shakeel Butt
2026-05-12 16:08     ` Shakeel Butt
2026-05-11 20:20 ` [PATCH 2/8] mm: percpu: charge obj_exts allocation with __GFP_ACCOUNT Alexandre Ghiti
2026-05-21 17:25   ` Shakeel Butt
2026-05-22  8:11     ` Alexandre Ghiti
2026-05-26  8:35       ` Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 3/8] mm: percpu: Split memcg charging and kmem accounting Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 4/8] mm: memcontrol: track MEMCG_KMEM per NUMA node Alexandre Ghiti
2026-05-21 17:28   ` Shakeel Butt [this message]
2026-05-22 11:59     ` Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 5/8] mm: memcontrol: per-node kmem accounting for page charges Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 6/8] mm: slab: per-node kmem accounting for slab Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 7/8] mm: percpu: per-node kmem accounting using local credit Alexandre Ghiti
2026-05-11 20:20 ` [PATCH 8/8] mm: zswap: per-node kmem accounting for zswap/zsmalloc Alexandre Ghiti
2026-05-18 14:57 ` [PATCH 0/8] per-memcg-per-node kmem accounting Joshua Hahn
2026-05-20  8:39   ` Alexandre Ghiti
2026-05-21  3:46     ` Joshua Hahn
2026-05-21 13:00       ` Alexandre Ghiti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ag9AY2SrcsE1B3Ti@linux.dev \
    --to=shakeel.butt@linux.dev \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex@ghiti.fr \
    --cc=axelrasmussen@google.com \
    --cc=baohua@kernel.org \
    --cc=cgroups@vger.kernel.org \
    --cc=chengming.zhou@linux.dev \
    --cc=cl@gentwo.org \
    --cc=david@kernel.org \
    --cc=dennis@kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=joshua.hahnjy@gmail.com \
    --cc=kasong@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@kernel.org \
    --cc=minchan@kernel.org \
    --cc=muchun.song@linux.dev \
    --cc=nphamcs@gmail.com \
    --cc=qi.zheng@linux.dev \
    --cc=roman.gushchin@linux.dev \
    --cc=rppt@kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=surenb@google.com \
    --cc=tj@kernel.org \
    --cc=vbabka@kernel.org \
    --cc=weixugc@google.com \
    --cc=yosry@kernel.org \
    --cc=yuanchu@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.