All of lore.kernel.org
 help / color / mirror / Atom feed
From: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: shyju pv <shyju.pv-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	Sanil kumar <sanil.kumar-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	Masanari Iida
	<standby24x7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Cgroups <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org
Subject: Re: [PATCH] cgroup: fix dentry still in use bug when dropping css refs after umount
Date: Wed, 4 Jul 2012 13:56:24 +0800	[thread overview]
Message-ID: <4FF3DB08.5080606@huawei.com> (raw)
In-Reply-To: <20120703170317.GB555-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>

>> @@ -78,8 +79,8 @@ struct cgroup_subsys_state {

>>  	/* ID for this css, if possible */
>>  	struct css_id __rcu *id;
>>  
>> -	/* Used to put @cgroup->dentry on the last css_put() */
>> -	struct work_struct dput_work;
>> +	/* Used to put @cgroup->css_refs on the last css_put() */
>> +	struct work_struct put_work;
>>  };
>>  
>>  /* bits in struct cgroup_subsys_state flags field */
>> @@ -170,6 +171,9 @@ struct cgroup {
>>  	 */
>>  	atomic_t count;
>>  
>> +	/* We won't destroy the cgroup when there are css refs */
>> +	struct kref css_refs;
>> +
>>  	/*
>>  	 * We link our 'sibling' struct into our parent's 'children'.
>>  	 * Our children link their 'sibling' into our 'children'.
> 
> Hmm... adding another layer of refcnting.  Now we end up with three
> layers of refcnting - the active usage via cgroup->count, cgroup
> lifetime via cgroup->dentry->d_count and this extended lifecycle
> refcnt.  In addition, we now have to deal with partially destroyed
> cgroups - e.g. running cgroup_path() will oops on lingering cgroups.
> Hating this tangling of dentries and cgroups more and more.  :(
> 


yeah, the fix you sent looks better.

WARNING: multiple messages have this Message-ID (diff)
From: Li Zefan <lizefan@huawei.com>
To: Tejun Heo <tj@kernel.org>
Cc: shyju pv <shyju.pv@huawei.com>,
	Sanil kumar <sanil.kumar@huawei.com>,
	Masanari Iida <standby24x7@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Cgroups <cgroups@vger.kernel.org>, <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH] cgroup: fix dentry still in use bug when dropping css refs after umount
Date: Wed, 4 Jul 2012 13:56:24 +0800	[thread overview]
Message-ID: <4FF3DB08.5080606@huawei.com> (raw)
In-Reply-To: <20120703170317.GB555@google.com>

>> @@ -78,8 +79,8 @@ struct cgroup_subsys_state {

>>  	/* ID for this css, if possible */
>>  	struct css_id __rcu *id;
>>  
>> -	/* Used to put @cgroup->dentry on the last css_put() */
>> -	struct work_struct dput_work;
>> +	/* Used to put @cgroup->css_refs on the last css_put() */
>> +	struct work_struct put_work;
>>  };
>>  
>>  /* bits in struct cgroup_subsys_state flags field */
>> @@ -170,6 +171,9 @@ struct cgroup {
>>  	 */
>>  	atomic_t count;
>>  
>> +	/* We won't destroy the cgroup when there are css refs */
>> +	struct kref css_refs;
>> +
>>  	/*
>>  	 * We link our 'sibling' struct into our parent's 'children'.
>>  	 * Our children link their 'sibling' into our 'children'.
> 
> Hmm... adding another layer of refcnting.  Now we end up with three
> layers of refcnting - the active usage via cgroup->count, cgroup
> lifetime via cgroup->dentry->d_count and this extended lifecycle
> refcnt.  In addition, we now have to deal with partially destroyed
> cgroups - e.g. running cgroup_path() will oops on lingering cgroups.
> Hating this tangling of dentries and cgroups more and more.  :(
> 


yeah, the fix you sent looks better.


  parent reply	other threads:[~2012-07-04  5:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-30  7:07 [PATCH] cgroup: fix dentry still in use bug when dropping css refs after umount Li Zefan
2012-06-30  7:07 ` Li Zefan
2012-06-30 14:34 ` Masanari Iida
     [not found] ` <4FEEA5CB.8070809-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2012-07-03 17:03   ` Tejun Heo
2012-07-03 17:03     ` Tejun Heo
     [not found]     ` <20120703170317.GB555-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-07-03 22:52       ` Tejun Heo
2012-07-03 22:52         ` Tejun Heo
     [not found]         ` <20120703225218.GF555-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-07-04  6:19           ` Li Zefan
2012-07-04  6:19             ` Li Zefan
     [not found]             ` <4FF3E063.5010604-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2012-07-08  6:35               ` Tejun Heo
2012-07-08  6:35                 ` Tejun Heo
     [not found]                 ` <20120708063536.GB19021-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-07-10  2:11                   ` Li Zefan
2012-07-10  2:11                     ` Li Zefan
     [not found]                     ` <4FFB8F39.9030209-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2012-07-16 16:45                       ` Tejun Heo
2012-07-16 16:45                         ` Tejun Heo
     [not found]         ` <4ff55c60.27da440a.65ec.ffff83dfSMTPIN_ADDED@mx.google.com>
     [not found]           ` <4ff55c60.27da440a.65ec.ffff83dfSMTPIN_ADDED-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2012-07-07 23:46             ` [PATCH 1/2] Revert "cgroup: superblock can't be released with active dentries" 'Tejun Heo'
2012-07-07 23:46               ` 'Tejun Heo'
     [not found]               ` <20120707234634.GC16783-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-07-07 23:46                 ` [PATCH 2/2] cgroup: fix cgroup hierarchy umount race 'Tejun Heo'
2012-07-07 23:46                   ` 'Tejun Heo'
     [not found]                   ` <20120707234659.GD16783-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-07-14 12:08                     ` Al Viro
2012-07-14 12:08                       ` Al Viro
     [not found]                       ` <20120714120852.GK22927-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
2012-07-16 16:44                         ` 'Tejun Heo'
2012-07-16 16:44                           ` 'Tejun Heo'
2012-07-04  5:56       ` Li Zefan [this message]
2012-07-04  5:56         ` [PATCH] cgroup: fix dentry still in use bug when dropping css refs after umount Li Zefan

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=4FF3DB08.5080606@huawei.com \
    --to=lizefan-hv44wf8li93qt0dzr+alfa@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sanil.kumar-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=shyju.pv-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=standby24x7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.