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));
}
next prev parent 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.