Re: [PATCH v1 2/4] mm: memcg: merge multiple page_counters into a single structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 03, 2024 at 02:11:17PM -0700, Shakeel Butt wrote:
> On Fri, May 03, 2024 at 01:18:33PM -0700, Roman Gushchin wrote:
> [...]
> >  enum mem_counter_type {
> > +#ifdef CONFIG_MEMCG
> >  	MCT_MEMORY,		/* cgroup v1 and v2 */
> >  	MCT_SWAP,		/* cgroup v2 only */
> >  	MCT_MEMSW = MCT_SWAP,	/* cgroup v1 only */
> >  	MCT_KMEM,		/* cgroup v1 only */
> >  	MCT_TCPMEM,		/* cgroup v1 only */
> > +#endif
> > +#ifdef CONFIG_CGROUP_HUGETLB
> > +	MCT_HUGETLB_MAX = __MCT_HUGETLB_MAX,
> > +#endif
> > +	__MCT_NR_ITEMS,
> >  };
> >  
> 
> Thanks for the awesome work. I haven't gone through all the patches yet
> but wanted to ask a quick question. In the above enum are you trying to
> do a union between memcg and hugetlb? It gave me a big pause to
> understand what you are trying to do.

Yep, sort of. So the page_counter structure supports N independent
counters, where N is sufficient enough for both memcg and hugetlb cases.

MCT_MEMORY, MCT_SWAP etc are used directly in the memcontrol.c code,
while hugetlb code just indexes. MCT_HUGETLB_MAX magic is needed to define
N at the compile time.

Thanks!




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux