From: Kamezawa Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>,
Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Subject: Re: [PATCH 2/2] memcg: first step towards hierarchical controller
Date: Thu, 28 Jun 2012 17:46:01 +0900 [thread overview]
Message-ID: <4FEC19C9.4090708@jp.fujitsu.com> (raw)
In-Reply-To: <20120627173336.GJ15811-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
(2012/06/28 2:33), Tejun Heo wrote:
> Hello, Michal.
>
> On Wed, Jun 27, 2012 at 02:51:19PM +0200, Michal Hocko wrote:
>>> Yeah, this is something I'm seriously considering doing from cgroup
>>> core. ie. generating a warning message if the user nests cgroups w/
>>> controllers which don't support full hierarchy.
>>
>> This is a good idea.
>
> And I want each controller either to do proper hierarchy or not at all
> and disallow switching the behavior while mounted - at least disallow
> switching off hierarchy support dynamically.
>
>>> Just disallow clearing .use_hierarchy if it was mounted with the
>>> option?
>>
>> Dunno, mount option just doesn't feel right. We do not offer other
>> attributes to be set by them so it would be just confusing. Besides that
>> it would require an integration into existing tools like cgconfig which
>> is yet another pain just because of something that we never promissed to
>> keep a certain way. There are many people who don't work with mount&fs
>> cgroups directly but rather use libcgroup for that...
>
> If the default behavior has to be switched without extra input from
> userland, that should be noisy like hell and slow. e.g. generate
> warning messages whenever userland does something which is to be
> deprecated - nesting when .use_hierarchy == 0, mixing .use_hierarchy
> == 0 / 1, and maybe later on, using .use_hierarchy == 0 at all.
>
> Hmm.... we need to switch other controllers over to hierarchical
> behavior too. We may as well just do it from cgroup core. Once we
> rule out all users of pseudo hierarchy - nesting with controllers
> which don't support hierarchy - switching on hierarchy support
> per-controller shouldn't cause much problem.
>
> How about the following then?
>
> * I'll add a way for controllers to tell cgroup core that full
> hierarchy support is supported and a cgroup mount option to enable
> hierarchy (cgroup core itself already uses a number of mount options
> and libgroup or whatever should be able to deal with it).
>
> cgroup will refuse to mount if the hierarchy option is specified
> with a controller which doesn't support hierarchy and it will also
> whine like crazy if the userland tries to nest without the mount
> option specified.
>
> Each controller must enforce hierarchy once so directed by cgroup
> mount option.
>
> * While doing that, all applicable controllers will be updated to
> support hierarchy.
>
> * After sufficient time has passed, nesting without the mount option
> specified will be failed by cgroup core.
>
> As for memcg's .use_hierarchy, make it RO 1 if the cgroup indicates
> that hierarchy should be used. Otherwise, I don't know but make sure
> it gets phased out out use somehow.
>
The reason for use_hierarchy file was just _performance_, it _was_ terrible.
Now it's not very good but not terrible.
You all may think this as crazy idea. How about versioning ?
Creating 'memory2'(memory cgroup v2) cgroup and mark 'memory' cgroup as deprecated,
and put it to feature-removal-list.
Of course, memory2 cgroup doesn't have use_hierarchy file and have kmem accounting.
We should disallow to use memory and memory2 at the same time.
Or, add version file to cgroup subsys ? select v2 as default...user can choose v1
with mount option if necessary, but it will not be maintained.
Is it too difficult or messy ?
To keep user experience, versioning is a way. And we can see how the changes
affects users.
Thanks,
-Kame
WARNING: multiple messages have this Message-ID (diff)
From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Tejun Heo <tj@kernel.org>
Cc: Michal Hocko <mhocko@suse.cz>,
Glauber Costa <glommer@parallels.com>,
cgroups@vger.kernel.org, linux-mm@kvack.org,
Johannes Weiner <hannes@cmpxchg.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 2/2] memcg: first step towards hierarchical controller
Date: Thu, 28 Jun 2012 17:46:01 +0900 [thread overview]
Message-ID: <4FEC19C9.4090708@jp.fujitsu.com> (raw)
In-Reply-To: <20120627173336.GJ15811@google.com>
(2012/06/28 2:33), Tejun Heo wrote:
> Hello, Michal.
>
> On Wed, Jun 27, 2012 at 02:51:19PM +0200, Michal Hocko wrote:
>>> Yeah, this is something I'm seriously considering doing from cgroup
>>> core. ie. generating a warning message if the user nests cgroups w/
>>> controllers which don't support full hierarchy.
>>
>> This is a good idea.
>
> And I want each controller either to do proper hierarchy or not at all
> and disallow switching the behavior while mounted - at least disallow
> switching off hierarchy support dynamically.
>
>>> Just disallow clearing .use_hierarchy if it was mounted with the
>>> option?
>>
>> Dunno, mount option just doesn't feel right. We do not offer other
>> attributes to be set by them so it would be just confusing. Besides that
>> it would require an integration into existing tools like cgconfig which
>> is yet another pain just because of something that we never promissed to
>> keep a certain way. There are many people who don't work with mount&fs
>> cgroups directly but rather use libcgroup for that...
>
> If the default behavior has to be switched without extra input from
> userland, that should be noisy like hell and slow. e.g. generate
> warning messages whenever userland does something which is to be
> deprecated - nesting when .use_hierarchy == 0, mixing .use_hierarchy
> == 0 / 1, and maybe later on, using .use_hierarchy == 0 at all.
>
> Hmm.... we need to switch other controllers over to hierarchical
> behavior too. We may as well just do it from cgroup core. Once we
> rule out all users of pseudo hierarchy - nesting with controllers
> which don't support hierarchy - switching on hierarchy support
> per-controller shouldn't cause much problem.
>
> How about the following then?
>
> * I'll add a way for controllers to tell cgroup core that full
> hierarchy support is supported and a cgroup mount option to enable
> hierarchy (cgroup core itself already uses a number of mount options
> and libgroup or whatever should be able to deal with it).
>
> cgroup will refuse to mount if the hierarchy option is specified
> with a controller which doesn't support hierarchy and it will also
> whine like crazy if the userland tries to nest without the mount
> option specified.
>
> Each controller must enforce hierarchy once so directed by cgroup
> mount option.
>
> * While doing that, all applicable controllers will be updated to
> support hierarchy.
>
> * After sufficient time has passed, nesting without the mount option
> specified will be failed by cgroup core.
>
> As for memcg's .use_hierarchy, make it RO 1 if the cgroup indicates
> that hierarchy should be used. Otherwise, I don't know but make sure
> it gets phased out out use somehow.
>
The reason for use_hierarchy file was just _performance_, it _was_ terrible.
Now it's not very good but not terrible.
You all may think this as crazy idea. How about versioning ?
Creating 'memory2'(memory cgroup v2) cgroup and mark 'memory' cgroup as deprecated,
and put it to feature-removal-list.
Of course, memory2 cgroup doesn't have use_hierarchy file and have kmem accounting.
We should disallow to use memory and memory2 at the same time.
Or, add version file to cgroup subsys ? select v2 as default...user can choose v1
with mount option if necessary, but it will not be maintained.
Is it too difficult or messy ?
To keep user experience, versioning is a way. And we can see how the changes
affects users.
Thanks,
-Kame
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-06-28 8:46 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-26 15:47 [PATCH 0/2] fix and deprecate use_hierarchy file Glauber Costa
[not found] ` <1340725634-9017-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-06-26 15:47 ` [PATCH 1/2] fix bad behavior in " Glauber Costa
2012-06-26 15:47 ` Glauber Costa
[not found] ` <1340725634-9017-2-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-06-26 15:52 ` Michal Hocko
2012-06-26 15:52 ` Michal Hocko
2012-06-26 15:54 ` Johannes Weiner
2012-06-26 15:54 ` Johannes Weiner
2012-06-26 22:25 ` Andrew Morton
2012-06-26 22:25 ` Andrew Morton
2012-06-26 22:30 ` Tejun Heo
2012-06-26 15:47 ` [PATCH 2/2] memcg: first step towards hierarchical controller Glauber Costa
2012-06-26 15:47 ` Glauber Costa
[not found] ` <1340725634-9017-3-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-06-26 16:15 ` Michal Hocko
2012-06-26 16:15 ` Michal Hocko
[not found] ` <20120626161501.GI9566-VqjxzfR4DlwKmadIfiO5sKVXKuFTiq87@public.gmane.org>
2012-06-26 16:37 ` Glauber Costa
2012-06-26 16:37 ` Glauber Costa
[not found] ` <4FE9E53C.2050700-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-06-26 17:54 ` Michal Hocko
2012-06-26 17:54 ` Michal Hocko
2012-06-26 18:04 ` Tejun Heo
2012-06-26 18:04 ` Tejun Heo
2012-06-26 18:55 ` Johannes Weiner
[not found] ` <20120626185542.GE27816-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
2012-06-26 19:14 ` Tejun Heo
2012-06-26 19:14 ` Tejun Heo
[not found] ` <20120626191450.GT3869-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-06-26 20:59 ` Johannes Weiner
2012-06-26 20:59 ` Johannes Weiner
[not found] ` <20120626205924.GH27816-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
2012-06-26 21:19 ` Tejun Heo
2012-06-26 21:19 ` Tejun Heo
2012-06-27 8:57 ` Glauber Costa
2012-06-27 17:07 ` Tejun Heo
[not found] ` <20120626180451.GP3869-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-06-26 22:08 ` Michal Hocko
2012-06-26 22:08 ` Michal Hocko
[not found] ` <20120626220809.GA4653-VqjxzfR4DlwKmadIfiO5sKVXKuFTiq87@public.gmane.org>
2012-06-26 22:14 ` Tejun Heo
2012-06-26 22:14 ` Tejun Heo
2012-06-26 22:17 ` Tejun Heo
[not found] ` <20120626221452.GA15811-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-06-27 8:52 ` Glauber Costa
2012-06-27 8:52 ` Glauber Costa
[not found] ` <4FEAC9CB.2010800-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-06-27 16:58 ` Tejun Heo
2012-06-27 16:58 ` Tejun Heo
2012-06-27 12:51 ` Michal Hocko
2012-06-27 12:51 ` Michal Hocko
[not found] ` <20120627125119.GE5683-VqjxzfR4DlwKmadIfiO5sKVXKuFTiq87@public.gmane.org>
2012-06-27 12:49 ` Glauber Costa
2012-06-27 12:49 ` Glauber Costa
2012-06-27 17:33 ` Tejun Heo
[not found] ` <20120627173336.GJ15811-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-06-28 8:46 ` Kamezawa Hiroyuki [this message]
2012-06-28 8:46 ` Kamezawa Hiroyuki
[not found] ` <4FEC19C9.4090708-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2012-06-28 9:12 ` Glauber Costa
2012-06-28 9:12 ` 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=4FEC19C9.4090708@jp.fujitsu.com \
--to=kamezawa.hiroyu-+cum20s59erqfuhtdcdx3a@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
--cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=mhocko-AlSwsSmVLrQ@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 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.