From: Li Zefan <lizf@cn.fujitsu.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Matt Helsley <matthltc@us.ibm.com>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Linux-Kernel <linux-kernel@vger.kernel.org>,
Linux Containers <containers@lists.linux-foundation.org>,
linux-pm@lists.linux-foundation.org,
Cedric Le Goater <clg@fr.ibm.com>,
"Serge E. Hallyn" <serue@us.ibm.com>,
Paul Menage <menage@google.com>
Subject: [PATCH] freezer_cg: remove task_lock from freezer_fork()
Date: Tue, 04 Nov 2008 14:48:39 +0800 [thread overview]
Message-ID: <490FF047.2030008@cn.fujitsu.com> (raw)
In-Reply-To: <490FE7B5.8020400@cn.fujitsu.com>
In theory the task can be moved to another cgroup and the freezer will
be freed right after task_lock is dropped, so the lock results in zero
protection.
But in the case of freezer_fork() no lock is needed, since the task
is not in tasklist yet so it won't be moved to another cgroup, so
task->cgroups won't be changed or invalidated.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/cgroup_freezer.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c
index 7fa476f..6605907 100644
--- a/kernel/cgroup_freezer.c
+++ b/kernel/cgroup_freezer.c
@@ -184,9 +184,13 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task)
{
struct freezer *freezer;
- task_lock(task);
+ /*
+ * No lock is needed, since the task isn't on tasklist yet,
+ * so it can't be moved to another cgroup, which means the
+ * freezer won't be removed and will be valid during this
+ * function call.
+ */
freezer = task_freezer(task);
- task_unlock(task);
spin_lock_irq(&freezer->lock);
BUG_ON(freezer->state == CGROUP_FROZEN);
--
1.5.4.rc3
next prev parent reply other threads:[~2008-11-04 6:51 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-11 23:53 [PATCH 0/5] Container Freezer v6: Reuse Suspend Freezer Matt Helsley
2008-08-11 23:53 ` [PATCH 1/5] Container Freezer: Add TIF_FREEZE flag to all architectures Matt Helsley
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` [PATCH 2/5] Container Freezer: Make refrigerator always available Matt Helsley
2008-08-11 23:53 ` Matt Helsley
2008-08-12 20:49 ` Rafael J. Wysocki
2008-08-13 1:01 ` [ProbableSpam]Re: " Matt Helsley
2008-08-13 14:31 ` Rafael J. Wysocki
[not found] ` <1218589300.19008.135.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-08-13 14:31 ` Rafael J. Wysocki
2008-08-13 14:31 ` Rafael J. Wysocki
2008-08-13 1:01 ` Matt Helsley
[not found] ` <200808122249.27553.rjw-KKrjLPT3xs0@public.gmane.org>
2008-08-13 1:01 ` Matt Helsley
2008-08-12 20:49 ` Rafael J. Wysocki
[not found] ` <20080811235324.661871296-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-12 20:49 ` Rafael J. Wysocki
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` [PATCH 3/5] Container Freezer: Implement freezer cgroup subsystem Matt Helsley
2008-08-11 23:53 ` Matt Helsley
[not found] ` <20080811235325.121356317-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-12 22:56 ` Andrew Morton
2008-08-12 22:56 ` Andrew Morton
2008-08-12 22:56 ` Andrew Morton
2008-08-13 2:38 ` Matt Helsley
2008-08-13 14:51 ` Rafael J. Wysocki
2008-08-13 14:51 ` Rafael J. Wysocki
[not found] ` <1218595088.19008.176.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-08-13 14:51 ` Rafael J. Wysocki
2008-08-13 2:38 ` Matt Helsley
[not found] ` <20080812155610.f4d40bb1.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-08-13 2:38 ` Matt Helsley
2008-11-04 5:43 ` Paul Menage
2008-11-04 6:12 ` Li Zefan
2008-11-04 6:40 ` Paul Menage
2008-11-04 7:25 ` Li Zefan
2008-11-04 7:35 ` [RFC][PATCH] freezer_cg: disable writing freezer.state of root cgroup Li Zefan
2008-11-04 7:56 ` Paul Menage
2008-11-04 8:01 ` Li Zefan
2008-11-05 10:18 ` Cedric Le Goater
2008-11-05 10:18 ` Cedric Le Goater
[not found] ` <4910014F.4000808-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-11-05 10:18 ` Cedric Le Goater
2008-11-06 0:48 ` Paul Menage
2008-11-06 0:48 ` Paul Menage
2008-11-06 0:48 ` Paul Menage
2008-11-04 6:48 ` Li Zefan [this message]
2008-08-11 23:53 ` [PATCH 3/5] Container Freezer: Implement freezer cgroup subsystem Matt Helsley
2008-08-11 23:53 ` [PATCH 4/5] Container Freezer: Skip frozen cgroups during power management resume Matt Helsley
2008-08-12 20:50 ` Rafael J. Wysocki
2008-08-12 20:50 ` Rafael J. Wysocki
[not found] ` <20080811235325.485466148-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-12 20:50 ` Rafael J. Wysocki
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` [PATCH 5/5] Container Freezer: Prevent frozen tasks or cgroups from changing Matt Helsley
2008-08-11 23:53 ` Matt Helsley
2008-08-11 23:53 ` Matt Helsley
[not found] ` <20080811235323.872291138-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-12 22:44 ` [PATCH 0/5] Container Freezer v6: Reuse Suspend Freezer Andrew Morton
2008-08-12 22:44 ` Andrew Morton
2008-08-13 3:47 ` [linux-pm] " Vivek Kashyap
2008-08-13 4:08 ` Andrew Morton
2008-08-13 4:08 ` [linux-pm] " Andrew Morton
2008-08-13 4:08 ` Andrew Morton
2008-08-15 21:54 ` Matt Helsley
[not found] ` <20080812210859.ff2fa2f4.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-08-15 21:54 ` Matt Helsley
2008-08-15 21:54 ` Matt Helsley
2008-08-13 3:47 ` Vivek Kashyap
[not found] ` <20080812154429.c5377bd0.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-08-13 3:47 ` [linux-pm] " Vivek Kashyap
2008-08-12 22:44 ` Andrew Morton
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=490FF047.2030008@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=clg@fr.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=matthltc@us.ibm.com \
--cc=menage@google.com \
--cc=rjw@sisk.pl \
--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.