On Thu, Jan 6, 2022 at 1:03 AM Michal Koutný <mkoutny@xxxxxxxx> wrote: > > On Mon, Dec 20, 2021 at 04:56:46PM +0800, Muchun Song <songmuchun@xxxxxxxxxxxxx> 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.