Messages in this thread | | | From | Muchun Song <> | Date | Thu, 6 Jan 2022 11:34:58 +0800 | Subject | Re: [PATCH v5 13/16] mm: memcontrol: reuse memory cgroup ID for kmem ID |
| |
On Thu, Jan 6, 2022 at 1:03 AM Michal Koutný <mkoutny@suse.com> wrote: > > On Mon, Dec 20, 2021 at 04:56:46PM +0800, Muchun Song <songmuchun@bytedance.com> wrote: > > There are two idrs being used by memory cgroup, one is for kmem ID, > > another is for memory cgroup ID. The maximum ID of both is 64Ki. > > Both of them can limit the total number of memory cgroups. > > Actually, we can reuse memory cgroup ID for kmem ID to simplify the > > code. > > An interesting improvement. > > I'm a bit dense -- what's the purpose the MEM_CGROUP_ID_DIFF offset?
Hi Michal and Mika,
MEM_CGROUP_ID_DIFF is introduced to be consistent with before that kmem ID starts with -1 and has no holes. Actually, it can be dropped and make memcg->kmemcg_id equal to memcg->id.id directly.
> Couldn't this deduplication be extended to only use mem_cgroup.id.id > instead of mem_cgroup.kmemcg_id? (With a boolean telling whether kmem > accounting is active.) >
Not easy to completely remove memcg->kmemcg_id since this filed will be used to sync list_lru reparenting which will change memcg->kmemcg_id to its parent's kmem ID (more details refers to memcg_drain_all_list_lrus() in patch 10 of this series).
Thanks.
| |