lkml.org 
[lkml]   [2013]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH next-20130703] net: sock: Add ifdef CONFIG_MEMCG_KMEM for mem_cgroup_sockets_{init,destroy}
    On 2013/7/3 20:19, Sedat Dilek wrote:
    > When "CONFIG_MEMCG_KMEM=n" I see this in my build-log:
    >
    > LD init/built-in.o
    > mm/built-in.o: In function `mem_cgroup_css_free':
    > memcontrol.c:(.text+0x5caa6): undefined reference to `mem_cgroup_sockets_destroy'
    > make[2]: *** [vmlinux] Error 1
    >
    > Inspired by the ifdef for mem_cgroup_sockets_{init,destroy} here...
    >
    > [ net/core/sock.c ]
    >
    > #ifdef CONFIG_MEMCG_KMEM
    > int mem_cgroup_sockets_init()
    > ...
    > void mem_cgroup_sockets_destroy()
    > ...
    > #endif
    >
    > ...I did the the same for both in "include/net/sock.h".
    >
    > This fixes the issue for me in next-20130703.
    >
    > Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>

    Maybe it's better to add memcg_destroy_kmem(), to pair with
    memcg_init_kmem().

    This patch can be folded into "memcg: use css_get/put when charging/uncharging kmem"

    =======================

    [PATCH] memcg: fix build error if CONFIG_MEMCG_KMEM=n

    Fix this build error:

    mm/built-in.o: In function `mem_cgroup_css_free':
    memcontrol.c:(.text+0x5caa6): undefined reference to
    'mem_cgroup_sockets_destroy'

    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Li Zefan <lizefan@huawei.com>
    ---
    mm/memcontrol.c | 12 ++++++++++--
    1 file changed, 10 insertions(+), 2 deletions(-)

    diff --git a/mm/memcontrol.c b/mm/memcontrol.c
    index 234f311..59ea6f9 100644
    --- a/mm/memcontrol.c
    +++ b/mm/memcontrol.c
    @@ -5876,6 +5876,11 @@ static int memcg_init_kmem(struct mem_cgroup *memcg, struct cgroup_subsys *ss)
    return mem_cgroup_sockets_init(memcg, ss);
    }

    +static void memcg_destroy_kmem(struct mem_cgroup *memcg)
    +{
    + mem_cgroup_sockets_destroy(memcg);
    +}
    +
    static void kmem_cgroup_css_offline(struct mem_cgroup *memcg)
    {
    if (!memcg_kmem_is_active(memcg))
    @@ -5915,6 +5920,10 @@ static int memcg_init_kmem(struct mem_cgroup *memcg, struct cgroup_subsys *ss)
    return 0;
    }

    +static void memcg_destroy_kmem(struct mem_cgroup *memcg)
    +{
    +}
    +
    static void kmem_cgroup_css_offline(struct mem_cgroup *memcg)
    {
    }
    @@ -6312,8 +6321,7 @@ static void mem_cgroup_css_free(struct cgroup *cont)
    {
    struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);

    - mem_cgroup_sockets_destroy(memcg);
    -
    + memcg_destroy_kmem(memcg);
    __mem_cgroup_free(memcg);
    }

    --
    1.8.0.2

    > ---
    > [ v2: git dislikes lines beginning with hash ('#'). ]
    >
    > include/net/sock.h | 4 +++-
    > 1 file changed, 3 insertions(+), 1 deletion(-)
    >
    > diff --git a/include/net/sock.h b/include/net/sock.h
    > index ea6206c..ad4bf7f 100644
    > --- a/include/net/sock.h
    > +++ b/include/net/sock.h
    > @@ -71,6 +71,7 @@
    > struct cgroup;
    > struct cgroup_subsys;
    > #ifdef CONFIG_NET
    > +#ifdef CONFIG_MEMCG_KMEM

    #if defined(CONFIG_NET) && defined(CONFIG_MEMCG_KMEM)

    > int mem_cgroup_sockets_init(struct mem_cgroup *memcg, struct cgroup_subsys *ss);
    > void mem_cgroup_sockets_destroy(struct mem_cgroup *memcg);
    > #else
    > @@ -83,7 +84,8 @@ static inline
    > void mem_cgroup_sockets_destroy(struct mem_cgroup *memcg)
    > {
    > }
    > -#endif
    > +#endif /* CONFIG_NET */
    > +#endif /* CONFIG_MEMCG_KMEM */
    > /*
    > * This structure really needs to be cleaned up.
    > * Most of it is for TCP, and not used by any of
    >



    \
     
     \ /
      Last update: 2013-07-03 15:01    [W:3.417 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site