linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization
@ 2015-02-19 14:34 Vladimir Davydov
  2015-02-19 14:34 ` [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy Vladimir Davydov
  2015-03-02 17:12 ` [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Tejun Heo
  0 siblings, 2 replies; 5+ messages in thread
From: Vladimir Davydov @ 2015-02-19 14:34 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Johannes Weiner, Michal Hocko, linux-mm, cgroups, linux-kernel

Currently, we call cgroup_subsys->bind only on unmount, remount, and
when creating a new root on mount. Since the default hierarchy root is
created in cgroup_init, we will not call cgroup_subsys->bind if the
default hierarchy is freshly mounted. As a result, some controllers will
behave incorrectly (most notably, the "memory" controller will not
enable hierarchy support). Fix this by calling cgroup_subsys->bind right
after initializing a cgroup subsystem.

Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
---
 kernel/cgroup.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 29a7b2cc593e..21a4b6d61e21 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -5040,6 +5040,9 @@ int __init cgroup_init(void)
 			WARN_ON(cgroup_add_dfl_cftypes(ss, ss->dfl_cftypes));
 			WARN_ON(cgroup_add_legacy_cftypes(ss, ss->legacy_cftypes));
 		}
+
+		if (ss->bind)
+			ss->bind(init_css_set.subsys[ssid]);
 	}
 
 	cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj);
-- 
1.7.10.4

--
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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy
  2015-02-19 14:34 [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Vladimir Davydov
@ 2015-02-19 14:34 ` Vladimir Davydov
  2015-03-02 17:13   ` Tejun Heo
  2015-03-02 17:12 ` [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Tejun Heo
  1 sibling, 1 reply; 5+ messages in thread
From: Vladimir Davydov @ 2015-02-19 14:34 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Johannes Weiner, Michal Hocko, linux-mm, cgroups, linux-kernel

If the memory cgroup controller is initially mounted in the scope of the
default cgroup hierarchy and then remounted to a legacy hierarchy, it
will still have hierarchy support enabled, which is incorrect. We should
disable hierarchy support if bound to the legacy cgroup hierarchy.

Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
---
 mm/memcontrol.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index d18d3a6e7337..40889117c1f7 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -5232,7 +5232,9 @@ static void mem_cgroup_bind(struct cgroup_subsys_state *root_css)
 	 * on for the root memcg is enough.
 	 */
 	if (cgroup_on_dfl(root_css->cgroup))
-		mem_cgroup_from_css(root_css)->use_hierarchy = true;
+		root_mem_cgroup->use_hierarchy = true;
+	else
+		root_mem_cgroup->use_hierarchy = false;
 }
 
 static u64 memory_current_read(struct cgroup_subsys_state *css,
-- 
1.7.10.4

--
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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization
  2015-02-19 14:34 [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Vladimir Davydov
  2015-02-19 14:34 ` [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy Vladimir Davydov
@ 2015-03-02 17:12 ` Tejun Heo
  1 sibling, 0 replies; 5+ messages in thread
From: Tejun Heo @ 2015-03-02 17:12 UTC (permalink / raw)
  To: Vladimir Davydov
  Cc: Johannes Weiner, Michal Hocko, linux-mm, cgroups, linux-kernel

On Thu, Feb 19, 2015 at 05:34:46PM +0300, Vladimir Davydov wrote:
> Currently, we call cgroup_subsys->bind only on unmount, remount, and
> when creating a new root on mount. Since the default hierarchy root is
> created in cgroup_init, we will not call cgroup_subsys->bind if the
> default hierarchy is freshly mounted. As a result, some controllers will
> behave incorrectly (most notably, the "memory" controller will not
> enable hierarchy support). Fix this by calling cgroup_subsys->bind right
> after initializing a cgroup subsystem.
> 
> Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>

Applied to cgroup/for-4.0-fixes.

Thanks.

-- 
tejun

--
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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy
  2015-02-19 14:34 ` [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy Vladimir Davydov
@ 2015-03-02 17:13   ` Tejun Heo
  2015-03-02 17:33     ` Johannes Weiner
  0 siblings, 1 reply; 5+ messages in thread
From: Tejun Heo @ 2015-03-02 17:13 UTC (permalink / raw)
  To: Vladimir Davydov
  Cc: Johannes Weiner, Michal Hocko, linux-mm, cgroups, linux-kernel

On Thu, Feb 19, 2015 at 05:34:47PM +0300, Vladimir Davydov wrote:
> If the memory cgroup controller is initially mounted in the scope of the
> default cgroup hierarchy and then remounted to a legacy hierarchy, it
> will still have hierarchy support enabled, which is incorrect. We should
> disable hierarchy support if bound to the legacy cgroup hierarchy.
> 
> Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>

Johannes, Michal, can you guys pick this up?

Thanks.

-- 
tejun

--
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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy
  2015-03-02 17:13   ` Tejun Heo
@ 2015-03-02 17:33     ` Johannes Weiner
  0 siblings, 0 replies; 5+ messages in thread
From: Johannes Weiner @ 2015-03-02 17:33 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Vladimir Davydov, Michal Hocko, linux-mm, cgroups, linux-kernel

On Mon, Mar 02, 2015 at 12:13:23PM -0500, Tejun Heo wrote:
> On Thu, Feb 19, 2015 at 05:34:47PM +0300, Vladimir Davydov wrote:
> > If the memory cgroup controller is initially mounted in the scope of the
> > default cgroup hierarchy and then remounted to a legacy hierarchy, it
> > will still have hierarchy support enabled, which is incorrect. We should
> > disable hierarchy support if bound to the legacy cgroup hierarchy.
> > 
> > Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
> 
> Johannes, Michal, can you guys pick this up?

Yup, will do.

--
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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-03-02 17:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-19 14:34 [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Vladimir Davydov
2015-02-19 14:34 ` [PATCH 2/2] memcg: disable hierarchy support if bound to the legacy cgroup hierarchy Vladimir Davydov
2015-03-02 17:13   ` Tejun Heo
2015-03-02 17:33     ` Johannes Weiner
2015-03-02 17:12 ` [PATCH 1/2] cgroup: call cgroup_subsys->bind on cgroup subsys initialization Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox