From: Li Zefan <lizf@cn.fujitsu.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Paul Menage <menage@google.com>,
containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org
Subject: Re: [RFC][PATCH 2/3] CGroups: Use hierarchy_mutex in memory controller
Date: Thu, 11 Dec 2008 14:47:24 +0800 [thread overview]
Message-ID: <4940B77C.6020800@cn.fujitsu.com> (raw)
In-Reply-To: <20081211063307.GL3008@balbir.in.ibm.com>
Balbir Singh wrote:
> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2008-12-11 10:05:01]:
>
>> On Wed, 10 Dec 2008 16:52:57 -0800
>> Paul Menage <menage@google.com> wrote:
>>
>>> On Wed, Dec 10, 2008 at 4:49 PM, KAMEZAWA Hiroyuki
>>> <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>>>> an operation like rmdir() in somewhere.
>>>> hierarchy_lock for A (acquired)
>>>> hierarchy_lock for B (waiting)
>>>>
>>>> in subsys A.
>>>> mmap_sem (acquired)
>>>> hierarchy_lock for A (waiting)
>>>> in subsys B.
>>>> hierarchy_lock for B (aquired)
>>>> mmap_sem (waiting)
>>>>
>>> That's a valid deadlock - you'd need to require the mmap_sem nests
>>> either inside all hierarchy_mutexes or else outside all of them.
>>>
>> This was a found dead lock between memcg and cpuset.
>>
>> another one was
>>
>> an operation like rmdir() in somewhere.
>> hierarchy_lock for memcg (acquired)
>> hierarchy_lock for B (waiting)
>>
>> in subsys B.
>> hierarchy_lock for B (aquired)
>
> But then the hierarchy_locks acquired will be different right?
>
Yes, I'm worrying this too. The lock order by cgroup_lock_hierarchy() is:
lock A -> lock B -> lock C
But a call chain may end up with:
... -> lock B -> ... lock A -> ...
So though this hierarchy lock proprosal can solve specific deadlock between
cpuset and memcg by making cpuset holding cgroup_lock and memcg holding hierarchy_lock,
but we'll probably encounter other deadlocks describled above.
>> have to do some memory reclaim -> hierarchy_lock for memcg (waiting)
>>
>> I have no objections to hierarchy_lock itself but calling context to memcg is very
>> complicated and simple replace of these locks will be just a small help.
>
> Could you please explain the race better?
>
next prev parent reply other threads:[~2008-12-11 6:49 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-10 23:36 [RFC][PATCH 0/3] CGroups: CGroups: Hierarchy locking/refcount changes menage
2008-12-10 23:36 ` [RFC][PATCH 1/3] CGroups: Add a per-subsystem hierarchy_mutex menage
2008-12-11 0:37 ` KAMEZAWA Hiroyuki
2008-12-11 0:44 ` Paul Menage
2008-12-11 6:30 ` Balbir Singh
2008-12-11 3:05 ` Li Zefan
2008-12-11 17:07 ` Paul Menage
2008-12-11 6:29 ` Balbir Singh
2008-12-11 17:09 ` Paul Menage
2008-12-10 23:36 ` [RFC][PATCH 2/3] CGroups: Use hierarchy_mutex in memory controller menage
2008-12-11 0:49 ` KAMEZAWA Hiroyuki
2008-12-11 0:52 ` Paul Menage
2008-12-11 1:05 ` KAMEZAWA Hiroyuki
2008-12-11 6:33 ` Balbir Singh
2008-12-11 6:47 ` Li Zefan [this message]
2008-12-11 6:53 ` KAMEZAWA Hiroyuki
2008-12-11 17:05 ` Paul Menage
2008-12-12 1:12 ` KAMEZAWA Hiroyuki
2008-12-10 23:36 ` [RFC][PATCH 3/3] CGroups: Add css_tryget() menage
2008-12-11 0:52 ` KAMEZAWA Hiroyuki
2008-12-11 7:02 ` [RFC][PATCH]example: use css_tryget() in memcg " KAMEZAWA Hiroyuki
2008-12-11 5:15 ` KAMEZAWA Hiroyuki
2008-12-11 7:28 ` Paul Menage
2008-12-11 7:29 ` KAMEZAWA Hiroyuki
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=4940B77C.6020800@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
/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