Re: [PATCH] cgroups: don't depend on CONFIG_MM_OWNER

Paul Menage
2008-09-15T17:56:03Z

On Sun, Sep 14, 2008 at 10:37 AM, Pekka J Enberg <penberg@cs.helsinki.fi> wrote:
> From: Pekka Enberg <penberg@cs.helsinki.fi>
>
> The revoke patches, for example, select CONFIG_MM_OWNER independently of
> cgroups. Therefore, don't depend on CONFIG_MM_OWNER in cgroup specific code.

Yes, the existing code doesn't seem quite right - if !CONFIG_MM_OWNER
then we don't need to even define a trivial version of
cgroup_mm_owner_callbacks()

But your patch is too specific - tying the existance of
cgroup_mm_owner_callbacks() to the memory controller would break other
controllers (e.g. the memrlimit or swap controllers, which also want
to use it)

How about:

- any cgroup that needs mm-owner callbacks selects an option
CGROUP_MM_OWNER_CALLBACK

- CGROUP_MM_OWNER_CALLBACK selects MM_OWNER and triggers the
definition of a non-trivial cgroup_mm_owner_callbacks() function

Paul

>
> Cc: Paul Menage <menage@google.com>
> Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
> include/linux/cgroup.h | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
> index c98dd7c..e270ec3 100644
> --- a/include/linux/cgroup.h
> +++ b/include/linux/cgroup.h
> @@ -413,10 +413,10 @@ static inline int cgroupstats_build(struct cgroupstats *stats,
>
> #endif /* !CONFIG_CGROUPS */
>
> -#ifdef CONFIG_MM_OWNER
> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR
> extern void
> cgroup_mm_owner_callbacks(struct task_struct *old, struct task_struct *new);
> -#else /* !CONFIG_MM_OWNER */
> +#else /* !CONFIG_CGROUP_MEM_RES_CTLR */
> static inline void
> cgroup_mm_owner_callbacks(struct task_struct *old, struct task_struct *new)
> {
> --
> 1.5.4.3
>
>