All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cedric Le Goater <clg@fr.ibm.com>
To: Li Zefan <lizf@cn.fujitsu.com>
Cc: Paul Menage <menage@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Matt Helsley <matthltc@us.ibm.com>,
	"Serge E. Hallyn" <serue@us.ibm.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux Containers <containers@lists.linux-foundation.org>
Subject: Re: [PATCH -last version] freezer_cg: disable writing freezer.state of root  cgroup
Date: Thu, 06 Nov 2008 09:13:48 +0100	[thread overview]
Message-ID: <4912A73C.4080308@fr.ibm.com> (raw)
In-Reply-To: <49125006.4050206@cn.fujitsu.com>

Hello Li ! 

Li Zefan wrote:
> Li Zefan wrote:
>>> Acked-by: Paul Menage <menage@google.com>
>>>
>>> I might use the term "non-freezable" rather than "unfreezable".
>>>
>> My bad English :(
>>
>> patch updated. (some annoying leading tabs are also removed in the doc)
>>
> 
> And I forgot to s/EIO/EINVAL in the document..
> 
> This patch should be the last version.. Sorry for the bothering.
> 
> 
> ======================
> 
> From: Li Zefan <lizf@cn.fujitsu.com>
> Date: Tue, 4 Nov 2008 15:26:29 +0800
> Subject: [PATCH] freezer_cg: disable writing freezer.state of root cgroup
> 
> With this change, control file 'freezer.state' doesn't exist in root
> cgroup, making root cgroup unfreezable.
> 
> I think it's reasonable to disallow freeze tasks in the root cgroup.
> And then we can avoid fork overhead when freezer subsystem is
> compiled but not used.
> 
> Also make writing invalid value to freezer.state returns EINVAL
> rather than EIO. This is more consistent with other cgroup subsystem.
> 
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> Acked-by: Paul Menage <menage@google.com>

It looks fine 

Acked-by: Cedric Le Goater <clg@fr.ibm.com>

I've also tested it.

here's a minor comment,

I would make a small macro is_root_freezer() to show explicitly
what we are testing and use the CSS_ROOT bit to test. That's what
the CSS_ROOT bit is for Paul ?

if yes, here's a possible result is below. 

C.

Signed-off-by: Cedric Le Goater <clg@fr.ibm.com>
---
 kernel/cgroup_freezer.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

Index: 2.6.27-lxc/kernel/cgroup_freezer.c
===================================================================
--- 2.6.27-lxc.orig/kernel/cgroup_freezer.c
+++ 2.6.27-lxc/kernel/cgroup_freezer.c
@@ -47,6 +47,11 @@ static inline struct freezer *task_freez
 			    struct freezer, css);
 }
 
+static inline int is_root_freezer(struct freezer *freezer)
+{
+	return test_bit(CSS_ROOT, &freezer->css.flags);
+}
+
 int cgroup_frozen(struct task_struct *task)
 {
 	struct freezer *freezer;
@@ -190,6 +195,13 @@ static void freezer_fork(struct cgroup_s
 	freezer = task_freezer(task);
 	task_unlock(task);
 
+	/*
+	 * The root cgroup is non-freezable, so we can skip the
+	 * following check.
+	 */
+	if (is_root_freezer(freezer))
+		return;
+
 	BUG_ON(freezer->state == CGROUP_FROZEN);
 	spin_lock_irq(&freezer->lock);
 	/* Locking avoids race with FREEZING -> THAWED transitions. */
@@ -363,6 +375,9 @@ static struct cftype files[] = {
 
 static int freezer_populate(struct cgroup_subsys *ss, struct cgroup *cgroup)
 {
+	if (is_root_freezer(cgroup_freezer(cgroup)))
+		return 0;
+
 	return cgroup_add_files(cgroup, ss, files, ARRAY_SIZE(files));
 }

  reply	other threads:[~2008-11-06  8:15 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-06  1:18 [PATCH -v2] freezer_cg: disable writing freezer.state of root cgroup Li Zefan
     [not found] ` <491245F1.5070707-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-11-06  1:24   ` Paul Menage
2008-11-06  1:24 ` Paul Menage
2008-11-06  1:53   ` Li Zefan
     [not found]     ` <49124DFF.1090702-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-11-06  2:01       ` [PATCH -last version] " Li Zefan
2008-11-06  2:01     ` Li Zefan
2008-11-06  8:13       ` Cedric Le Goater [this message]
     [not found]         ` <4912A73C.4080308-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-11-07  6:58           ` Li Zefan
2008-11-07  6:58         ` Li Zefan
     [not found]       ` <49125006.4050206-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-11-06  8:13         ` Cedric Le Goater
     [not found]   ` <6599ad830811051724p1f97026fl96be5efe38b33152-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-11-06  1:53     ` [PATCH -v2] " 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=4912A73C.4080308@fr.ibm.com \
    --to=clg@fr.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=containers@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=matthltc@us.ibm.com \
    --cc=menage@google.com \
    --cc=serue@us.ibm.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 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.