[PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.

Kanchana P Sridhar posted 1 patch 1 year, 5 months ago
include/linux/memcontrol.h | 4 ++++
1 file changed, 4 insertions(+)
[PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Kanchana P Sridhar 1 year, 5 months ago
This resolves an issue with obj_cgroup_get() not being defined
if CONFIG_MEMCG is not defined. This causes build errors if
obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.

The patch resolves this.

Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
---
 include/linux/memcontrol.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index fe05fdb92779..f693d254ab2a 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -1281,6 +1281,10 @@ struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *css)
 	return NULL;
 }
 
+static inline void obj_cgroup_get(struct obj_cgroup *objcg)
+{
+}
+
 static inline void obj_cgroup_put(struct obj_cgroup *objcg)
 {
 }

base-commit: 7d0b0d4b77b368b2111fc8b4449e33dfb3c34087
-- 
2.27.0
Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Nhat Pham 1 year, 5 months ago
On Tue, Aug 20, 2024 at 3:50 PM Kanchana P Sridhar
<kanchana.p.sridhar@intel.com> wrote:
>
> This resolves an issue with obj_cgroup_get() not being defined
> if CONFIG_MEMCG is not defined. This causes build errors if
> obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.
>
> The patch resolves this.
>
> Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> ---

This is only exposed because of your zswap mTHP patch series right?
Could you include this patch as part of that series (since we don't
need this without that patch series), or make it clear in the change
log?
RE: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Sridhar, Kanchana P 1 year, 5 months ago
> -----Original Message-----
> From: Nhat Pham <nphamcs@gmail.com>
> Sent: Wednesday, August 21, 2024 12:24 PM
> To: Sridhar, Kanchana P <kanchana.p.sridhar@intel.com>
> Cc: linux-kernel@vger.kernel.org; linux-mm@kvack.org;
> hannes@cmpxchg.org; yosryahmed@google.com; ryan.roberts@arm.com;
> Huang, Ying <ying.huang@intel.com>; 21cnbao@gmail.com; akpm@linux-
> foundation.org; Zou, Nanhai <nanhai.zou@intel.com>; Feghali, Wajdi K
> <wajdi.k.feghali@intel.com>; Gopal, Vinodh <vinodh.gopal@intel.com>
> Subject: Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is
> not defined.
> 
> On Tue, Aug 20, 2024 at 3:50 PM Kanchana P Sridhar
> <kanchana.p.sridhar@intel.com> wrote:
> >
> > This resolves an issue with obj_cgroup_get() not being defined
> > if CONFIG_MEMCG is not defined. This causes build errors if
> > obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.
> >
> > The patch resolves this.
> >
> > Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> > ---
> 
> This is only exposed because of your zswap mTHP patch series right?
> Could you include this patch as part of that series (since we don't
> need this without that patch series), or make it clear in the change
> log?

That's correct, Nhat. Although, it might be useful to have obj_cgroup_get()
defined in the case where CONFIG_MEMCG is not defined. memcontrol.h
handles obj_cgroup_put() similarly. Would it be Ok if I included a reference
to the zswap mTHP patch series in the change log?

Thanks,
Kanchana
Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Michal Hocko 1 year, 5 months ago
On Wed 21-08-24 19:40:42, Sridhar, Kanchana P wrote:
> 
> > -----Original Message-----
> > From: Nhat Pham <nphamcs@gmail.com>
> > Sent: Wednesday, August 21, 2024 12:24 PM
> > To: Sridhar, Kanchana P <kanchana.p.sridhar@intel.com>
> > Cc: linux-kernel@vger.kernel.org; linux-mm@kvack.org;
> > hannes@cmpxchg.org; yosryahmed@google.com; ryan.roberts@arm.com;
> > Huang, Ying <ying.huang@intel.com>; 21cnbao@gmail.com; akpm@linux-
> > foundation.org; Zou, Nanhai <nanhai.zou@intel.com>; Feghali, Wajdi K
> > <wajdi.k.feghali@intel.com>; Gopal, Vinodh <vinodh.gopal@intel.com>
> > Subject: Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is
> > not defined.
> > 
> > On Tue, Aug 20, 2024 at 3:50 PM Kanchana P Sridhar
> > <kanchana.p.sridhar@intel.com> wrote:
> > >
> > > This resolves an issue with obj_cgroup_get() not being defined
> > > if CONFIG_MEMCG is not defined. This causes build errors if
> > > obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.
> > >
> > > The patch resolves this.
> > >
> > > Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> > > ---
> > 
> > This is only exposed because of your zswap mTHP patch series right?
> > Could you include this patch as part of that series (since we don't
> > need this without that patch series), or make it clear in the change
> > log?
> 
> That's correct, Nhat. Although, it might be useful to have obj_cgroup_get()
> defined in the case where CONFIG_MEMCG is not defined. memcontrol.h
> handles obj_cgroup_put() similarly. Would it be Ok if I included a reference
> to the zswap mTHP patch series in the change log?

I would just fold it into the patch which exposes use without
CONFIG_MEMCG. We currently do not have any such user. That's why I've
asked what is this patch based on.
-- 
Michal Hocko
SUSE Labs
RE: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Sridhar, Kanchana P 1 year, 5 months ago
> -----Original Message-----
> From: Michal Hocko <mhocko@suse.com>
> Sent: Wednesday, August 21, 2024 11:15 PM
> To: Sridhar, Kanchana P <kanchana.p.sridhar@intel.com>
> Cc: Nhat Pham <nphamcs@gmail.com>; linux-kernel@vger.kernel.org; linux-
> mm@kvack.org; hannes@cmpxchg.org; yosryahmed@google.com;
> ryan.roberts@arm.com; Huang, Ying <ying.huang@intel.com>;
> 21cnbao@gmail.com; akpm@linux-foundation.org; Zou, Nanhai
> <nanhai.zou@intel.com>; Feghali, Wajdi K <wajdi.k.feghali@intel.com>;
> Gopal, Vinodh <vinodh.gopal@intel.com>
> Subject: Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is
> not defined.
> 
> On Wed 21-08-24 19:40:42, Sridhar, Kanchana P wrote:
> >
> > > -----Original Message-----
> > > From: Nhat Pham <nphamcs@gmail.com>
> > > Sent: Wednesday, August 21, 2024 12:24 PM
> > > To: Sridhar, Kanchana P <kanchana.p.sridhar@intel.com>
> > > Cc: linux-kernel@vger.kernel.org; linux-mm@kvack.org;
> > > hannes@cmpxchg.org; yosryahmed@google.com;
> ryan.roberts@arm.com;
> > > Huang, Ying <ying.huang@intel.com>; 21cnbao@gmail.com; akpm@linux-
> > > foundation.org; Zou, Nanhai <nanhai.zou@intel.com>; Feghali, Wajdi K
> > > <wajdi.k.feghali@intel.com>; Gopal, Vinodh <vinodh.gopal@intel.com>
> > > Subject: Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG
> is
> > > not defined.
> > >
> > > On Tue, Aug 20, 2024 at 3:50 PM Kanchana P Sridhar
> > > <kanchana.p.sridhar@intel.com> wrote:
> > > >
> > > > This resolves an issue with obj_cgroup_get() not being defined
> > > > if CONFIG_MEMCG is not defined. This causes build errors if
> > > > obj_cgroup_get() is called from code that is agnostic of
> CONFIG_MEMCG.
> > > >
> > > > The patch resolves this.
> > > >
> > > > Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> > > > ---
> > >
> > > This is only exposed because of your zswap mTHP patch series right?
> > > Could you include this patch as part of that series (since we don't
> > > need this without that patch series), or make it clear in the change
> > > log?
> >
> > That's correct, Nhat. Although, it might be useful to have obj_cgroup_get()
> > defined in the case where CONFIG_MEMCG is not defined. memcontrol.h
> > handles obj_cgroup_put() similarly. Would it be Ok if I included a reference
> > to the zswap mTHP patch series in the change log?
> 
> I would just fold it into the patch which exposes use without
> CONFIG_MEMCG. We currently do not have any such user. That's why I've
> asked what is this patch based on.

Ok, this sounds good, Michal and Nhat.

Thanks,
Kanchana

> --
> Michal Hocko
> SUSE Labs
Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Michal Hocko 1 year, 5 months ago
On Tue 20-08-24 12:50:05, Kanchana P Sridhar wrote:
> This resolves an issue with obj_cgroup_get() not being defined
> if CONFIG_MEMCG is not defined. 

Could you paste the compilation error and which tree this is based on?

> This causes build errors if
> obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.
> 
> The patch resolves this.
> 
> Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> ---
>  include/linux/memcontrol.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> index fe05fdb92779..f693d254ab2a 100644
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -1281,6 +1281,10 @@ struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *css)
>  	return NULL;
>  }
>  
> +static inline void obj_cgroup_get(struct obj_cgroup *objcg)
> +{
> +}
> +
>  static inline void obj_cgroup_put(struct obj_cgroup *objcg)
>  {
>  }
> 
> base-commit: 7d0b0d4b77b368b2111fc8b4449e33dfb3c34087
> -- 
> 2.27.0
> 

-- 
Michal Hocko
SUSE Labs
RE: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is not defined.
Posted by Sridhar, Kanchana P 1 year, 5 months ago
Hi Michal,

> -----Original Message-----
> From: Michal Hocko <mhocko@suse.com>
> Sent: Wednesday, August 21, 2024 8:11 AM
> To: Sridhar, Kanchana P <kanchana.p.sridhar@intel.com>
> Cc: linux-kernel@vger.kernel.org; linux-mm@kvack.org;
> hannes@cmpxchg.org; yosryahmed@google.com; nphamcs@gmail.com;
> ryan.roberts@arm.com; Huang, Ying <ying.huang@intel.com>;
> 21cnbao@gmail.com; akpm@linux-foundation.org; Zou, Nanhai
> <nanhai.zou@intel.com>; Feghali, Wajdi K <wajdi.k.feghali@intel.com>;
> Gopal, Vinodh <vinodh.gopal@intel.com>
> Subject: Re: [PATCH v1] mm: Defines obj_cgroup_get() if CONFIG_MEMCG is
> not defined.
> 
> On Tue 20-08-24 12:50:05, Kanchana P Sridhar wrote:
> > This resolves an issue with obj_cgroup_get() not being defined
> > if CONFIG_MEMCG is not defined.
> 
> Could you paste the compilation error and which tree this is based on?

Sure, this link contains the compilation error reported by the kernel test robot:

https://lore.kernel.org/oe-kbuild-all/202408202320.trSaY2o4-lkp@intel.com/

Error:
kernel test robot noticed the following build errors:

[auto build test ERROR on 8c0b4f7b65fd1ca7af01267f491e815a40d77444]

url:    https://github.com/intel-lab-lkp/linux/commits/Kanchana-P-Sridhar/mm-zswap-zswap_is_folio_same_filled-takes-an-index-in-the-folio/20240819-101738
base:   8c0b4f7b65fd1ca7af01267f491e815a40d77444
patch link:    https://lore.kernel.org/r/20240819021621.29125-3-kanchana.p.sridhar%40intel.com
patch subject: [PATCH v4 2/4] mm: zswap: zswap_store() extended to handle mTHP folios.
config: sparc-randconfig-002-20240820 (https://download.01.org/0day-ci/archive/20240820/202408202320.trSaY2o4-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240820/202408202320.trSaY2o4-lkp@intel.com/reproduce)

All errors (new ones prefixed by >>):

   mm/zswap.c: In function 'zswap_store_page':
>> mm/zswap.c:1534:17: error: implicit declaration of function 'obj_cgroup_get'; did you mean 'obj_cgroup_put'? [-Wimplicit-function-declaration]
    1534 |                 obj_cgroup_get(objcg);
         |                 ^~~~~~~~~~~~~~
         |                 obj_cgroup_put

My patch fixing the error is based on the mm-unstable branch in this git tree:

https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/

Please let me know if you need any other info.

Thanks,
Kanchana

> 
> > This causes build errors if
> > obj_cgroup_get() is called from code that is agnostic of CONFIG_MEMCG.
> >
> > The patch resolves this.
> >
> > Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
> > ---
> >  include/linux/memcontrol.h | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> > index fe05fdb92779..f693d254ab2a 100644
> > --- a/include/linux/memcontrol.h
> > +++ b/include/linux/memcontrol.h
> > @@ -1281,6 +1281,10 @@ struct mem_cgroup
> *mem_cgroup_from_css(struct cgroup_subsys_state *css)
> >  	return NULL;
> >  }
> >
> > +static inline void obj_cgroup_get(struct obj_cgroup *objcg)
> > +{
> > +}
> > +
> >  static inline void obj_cgroup_put(struct obj_cgroup *objcg)
> >  {
> >  }
> >
> > base-commit: 7d0b0d4b77b368b2111fc8b4449e33dfb3c34087
> > --
> > 2.27.0
> >
> 
> --
> Michal Hocko
> SUSE Labs