Linux cgroups development
 help / color / mirror / Atom feed
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
	Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>,
	Balbir Singh
	<bsingharora-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v2 2/2] cgroup: get rid of populate for memcg
Date: Tue, 10 Apr 2012 10:35:07 +0900	[thread overview]
Message-ID: <4F838E4B.9080905@jp.fujitsu.com> (raw)
In-Reply-To: <20120409174042.GA7522-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>

(2012/04/10 2:40), Tejun Heo wrote:

> (cc'ing other memcg ppl just in case)
> 
> Hello,
> 
> I don't think the error handling is correct here.
> 
> On Fri, Apr 06, 2012 at 08:04:10PM +0400, Glauber Costa wrote:
>> The last man standing justifying the need for populate() is the
>> sock memcg initialization functions. Now that we are able to pass
>> a struct mem_cgroup instead of a struct cgroup to the socket
>> initialization, there is nothing that stops us from initializing
>> everything in create().
>>
>> Signed-off-by: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>> CC: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
>> CC: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
>> ---
> ...
>> @@ -5010,7 +5010,9 @@ mem_cgroup_create(struct cgroup *cont)
>>  	memcg->move_charge_at_immigrate = 0;
>>  	mutex_init(&memcg->thresholds_lock);
>>  	spin_lock_init(&memcg->move_lock);
>> -	return &memcg->css;
>> +
>> +	if (!memcg_init_kmem(memcg, &mem_cgroup_subsys))
>> +		return &memcg->css;
>>  free_out:
>>  	__mem_cgroup_free(memcg);
>>  	return ERR_PTR(error);
> 
> So, the control is just falling through free_out: on kmem init
> failure; however, there seem to be stuff which needs to be undone -
> hotcpu_notifier() registration, which BTW seems incorrect even on its
> own - unmounting and mounting again would probably make the same
> notifier registered multiple times corrupting notification chain, and
> ref inc on the parent.
> 


ok, it should be fixed.

> It probably would be best to reorganize the function slightly such
> that, it's organized as...
> 
> 	1. alloc
> 	2. init stuff w/o other side effects
> 	3. make side effects
> 
> and add kmemcg init at the end of the second step.
> 
> Also, memcg maintainers, once the patches get updated and acked, I'd
> like to route them through cgroup tree so that I can kill ->populate
> there.  cgroup/for-3.5 is stable branch which can be pulled into other
> trees including the memcg one.  Would that be okay?
> 


Hm, I'm okay with that but.....Michal ? 

Thanks,
-Kame

  parent reply	other threads:[~2012-04-10  1:35 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-06 16:04 [PATCH v2 0/2] update memcg to break its need of populate Glauber Costa
     [not found] ` <1333728250-14248-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-04-06 16:04   ` [PATCH v2 1/2] cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg Glauber Costa
2012-04-06 16:04   ` [PATCH v2 2/2] cgroup: get rid of populate for memcg Glauber Costa
     [not found]     ` <1333728250-14248-3-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-04-09 17:40       ` Tejun Heo
     [not found]         ` <20120409174042.GA7522-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-04-09 17:51           ` Glauber Costa
     [not found]             ` <4F83218E.7060502-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-04-09 18:13               ` Tejun Heo
     [not found]                 ` <20120409181331.GD7522-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-04-09 20:18                   ` Glauber Costa
     [not found]                     ` <4F83442C.8040006-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-04-09 20:39                       ` Tejun Heo
2012-04-10  1:37               ` KAMEZAWA Hiroyuki
2012-04-10  1:35           ` KAMEZAWA Hiroyuki [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-03-22 18:19 [PATCH v2 0/2] remove sock memcg dependencies on populate Glauber Costa
     [not found] ` <1332440363-2754-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-22 18:19   ` [PATCH v2 2/2] cgroup: get rid of populate for memcg Glauber Costa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F838E4B.9080905@jp.fujitsu.com \
    --to=kamezawa.hiroyu-+cum20s59erqfuhtdcdx3a@public.gmane.org \
    --cc=bsingharora-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
    --cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
    --cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=mhocko-AlSwsSmVLrQ@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox