From: Michal Hocko <mhocko@suse.cz>
To: Tejun Heo <tj@kernel.org>
Cc: lizefan@huawei.com, rjw@sisk.pl,
containers@lists.linux-foundation.org, cgroups@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
fweisbec@gmail.com
Subject: Re: [PATCH 4/9] cgroup_freezer: trivial cleanups
Date: Thu, 8 Nov 2012 10:53:53 +0100 [thread overview]
Message-ID: <20121108095353.GB31821@dhcp22.suse.cz> (raw)
In-Reply-To: <1351931915-1701-5-git-send-email-tj@kernel.org>
On Sat 03-11-12 01:38:30, Tejun Heo wrote:
> * Clean-up indentation and line-breaks. Drop the invalid comment
> about freezer->lock.
>
> * Make all internal functions take @freezer instead of both @cgroup
> and @freezer.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
Looks reasonable
Reviewed-by: Michal Hocko <mhocko@suse.cz>
> ---
> kernel/cgroup_freezer.c | 41 +++++++++++++++++++----------------------
> 1 file changed, 19 insertions(+), 22 deletions(-)
>
> diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c
> index bedefd9..975b3d8 100644
> --- a/kernel/cgroup_freezer.c
> +++ b/kernel/cgroup_freezer.c
> @@ -29,17 +29,15 @@ enum freezer_state {
> };
>
> struct freezer {
> - struct cgroup_subsys_state css;
> - enum freezer_state state;
> - spinlock_t lock; /* protects _writes_ to state */
> + struct cgroup_subsys_state css;
> + enum freezer_state state;
> + spinlock_t lock;
> };
>
> -static inline struct freezer *cgroup_freezer(
> - struct cgroup *cgroup)
> +static inline struct freezer *cgroup_freezer(struct cgroup *cgroup)
> {
> - return container_of(
> - cgroup_subsys_state(cgroup, freezer_subsys_id),
> - struct freezer, css);
> + return container_of(cgroup_subsys_state(cgroup, freezer_subsys_id),
> + struct freezer, css);
> }
>
> static inline struct freezer *task_freezer(struct task_struct *task)
> @@ -180,8 +178,9 @@ out:
> * migrated into or out of @cgroup, so we can't verify task states against
> * @freezer state here. See freezer_attach() for details.
> */
> -static void update_if_frozen(struct cgroup *cgroup, struct freezer *freezer)
> +static void update_if_frozen(struct freezer *freezer)
> {
> + struct cgroup *cgroup = freezer->css.cgroup;
> struct cgroup_iter it;
> struct task_struct *task;
>
> @@ -211,12 +210,11 @@ notyet:
> static int freezer_read(struct cgroup *cgroup, struct cftype *cft,
> struct seq_file *m)
> {
> - struct freezer *freezer;
> + struct freezer *freezer = cgroup_freezer(cgroup);
> enum freezer_state state;
>
> - freezer = cgroup_freezer(cgroup);
> spin_lock_irq(&freezer->lock);
> - update_if_frozen(cgroup, freezer);
> + update_if_frozen(freezer);
> state = freezer->state;
> spin_unlock_irq(&freezer->lock);
>
> @@ -225,8 +223,9 @@ static int freezer_read(struct cgroup *cgroup, struct cftype *cft,
> return 0;
> }
>
> -static void freeze_cgroup(struct cgroup *cgroup, struct freezer *freezer)
> +static void freeze_cgroup(struct freezer *freezer)
> {
> + struct cgroup *cgroup = freezer->css.cgroup;
> struct cgroup_iter it;
> struct task_struct *task;
>
> @@ -236,8 +235,9 @@ static void freeze_cgroup(struct cgroup *cgroup, struct freezer *freezer)
> cgroup_iter_end(cgroup, &it);
> }
>
> -static void unfreeze_cgroup(struct cgroup *cgroup, struct freezer *freezer)
> +static void unfreeze_cgroup(struct freezer *freezer)
> {
> + struct cgroup *cgroup = freezer->css.cgroup;
> struct cgroup_iter it;
> struct task_struct *task;
>
> @@ -247,11 +247,9 @@ static void unfreeze_cgroup(struct cgroup *cgroup, struct freezer *freezer)
> cgroup_iter_end(cgroup, &it);
> }
>
> -static void freezer_change_state(struct cgroup *cgroup,
> +static void freezer_change_state(struct freezer *freezer,
> enum freezer_state goal_state)
> {
> - struct freezer *freezer = cgroup_freezer(cgroup);
> -
> /* also synchronizes against task migration, see freezer_attach() */
> spin_lock_irq(&freezer->lock);
>
> @@ -260,13 +258,13 @@ static void freezer_change_state(struct cgroup *cgroup,
> if (freezer->state != CGROUP_THAWED)
> atomic_dec(&system_freezing_cnt);
> freezer->state = CGROUP_THAWED;
> - unfreeze_cgroup(cgroup, freezer);
> + unfreeze_cgroup(freezer);
> break;
> case CGROUP_FROZEN:
> if (freezer->state == CGROUP_THAWED)
> atomic_inc(&system_freezing_cnt);
> freezer->state = CGROUP_FREEZING;
> - freeze_cgroup(cgroup, freezer);
> + freeze_cgroup(freezer);
> break;
> default:
> BUG();
> @@ -275,8 +273,7 @@ static void freezer_change_state(struct cgroup *cgroup,
> spin_unlock_irq(&freezer->lock);
> }
>
> -static int freezer_write(struct cgroup *cgroup,
> - struct cftype *cft,
> +static int freezer_write(struct cgroup *cgroup, struct cftype *cft,
> const char *buffer)
> {
> enum freezer_state goal_state;
> @@ -288,7 +285,7 @@ static int freezer_write(struct cgroup *cgroup,
> else
> return -EINVAL;
>
> - freezer_change_state(cgroup, goal_state);
> + freezer_change_state(cgroup_freezer(cgroup), goal_state);
> return 0;
> }
>
> --
> 1.7.11.7
>
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2012-11-08 9:53 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-03 8:38 [PATCHSET cgroup/for-3.8] cgroup_freezer: implement proper hierarchy support Tejun Heo
2012-11-03 8:38 ` [PATCH 1/9] cgroup: add cgroup_subsys->post_create() Tejun Heo
2012-11-05 13:42 ` Glauber Costa
2012-11-05 18:02 ` [RFC] cgroup: deprecate clone_children Tejun Heo
2012-11-05 19:17 ` Serge Hallyn
2012-11-05 19:26 ` Tejun Heo
2012-11-07 15:25 ` [PATCH 1/9] cgroup: add cgroup_subsys->post_create() Michal Hocko
2012-11-07 17:02 ` Tejun Heo
2012-11-07 17:15 ` [PATCH 1/9 v2] " Tejun Heo
2012-11-07 17:40 ` Michal Hocko
2012-11-08 2:59 ` Kamezawa Hiroyuki
2012-11-08 19:07 ` [PATCH 1/9 v3] " Tejun Heo
2012-11-09 9:09 ` Li Zefan
2012-11-09 9:09 ` Li Zefan
2012-11-09 11:09 ` Daniel Wagner
2012-11-09 17:22 ` Tejun Heo
2012-11-10 1:35 ` Glauber Costa
2012-11-12 13:04 ` Daniel Wagner
2012-11-03 8:38 ` [PATCH 2/9] cgroup: Use rculist ops for cgroup->children Tejun Heo
2012-11-07 15:30 ` Michal Hocko
2012-11-08 3:01 ` Kamezawa Hiroyuki
2012-11-09 9:10 ` Li Zefan
2012-11-03 8:38 ` [PATCH 3/9] cgroup: implement generic child / descendant walk macros Tejun Heo
2012-11-06 20:31 ` Tejun Heo
2012-11-07 15:38 ` Michal Hocko
2012-11-07 16:54 ` Michal Hocko
2012-11-07 17:01 ` Tejun Heo
2012-11-07 17:49 ` Michal Hocko
2012-11-08 3:21 ` Kamezawa Hiroyuki
2012-11-08 9:50 ` Michal Hocko
2012-11-08 17:15 ` Tejun Heo
2012-11-08 17:59 ` [PATCH 3/9 v2] " Tejun Heo
2012-11-09 9:13 ` Li Zefan
2012-11-03 8:38 ` [PATCH 4/9] cgroup_freezer: trivial cleanups Tejun Heo
2012-11-08 3:24 ` Kamezawa Hiroyuki
2012-11-08 9:53 ` Michal Hocko [this message]
2012-11-03 8:38 ` [PATCH 5/9] cgroup_freezer: prepare freezer_change_state() for full hierarchy support Tejun Heo
2012-11-08 4:25 ` Kamezawa Hiroyuki
2012-11-08 9:56 ` Michal Hocko
2012-11-03 8:38 ` [PATCH 6/9] cgroup_freezer: make freezer->state mask of flags Tejun Heo
2012-11-08 4:37 ` Kamezawa Hiroyuki
2012-11-08 4:42 ` Tejun Heo
2012-11-08 5:00 ` Kamezawa Hiroyuki
2012-11-08 14:38 ` Tejun Heo
2012-11-08 10:39 ` Michal Hocko
2012-11-08 14:39 ` Tejun Heo
2012-11-08 14:47 ` Michal Hocko
2012-11-03 8:38 ` [PATCH 7/9] cgroup_freezer: introduce CGROUP_FREEZING_[SELF|PARENT] Tejun Heo
2012-11-08 4:42 ` Kamezawa Hiroyuki
2012-11-08 4:45 ` Tejun Heo
2012-11-08 4:56 ` Kamezawa Hiroyuki
2012-11-08 14:41 ` Tejun Heo
2012-11-08 12:47 ` Michal Hocko
2012-11-08 14:42 ` Tejun Heo
2012-11-03 8:38 ` [PATCH 8/9] cgroup_freezer: add ->post_create() and ->pre_destroy() and track online state Tejun Heo
2012-11-08 4:48 ` Kamezawa Hiroyuki
2012-11-08 15:41 ` Tejun Heo
2012-11-08 13:23 ` Michal Hocko
2012-11-08 17:17 ` Tejun Heo
2012-11-03 8:38 ` [PATCH 9/9] cgroup_freezer: implement proper hierarchy support Tejun Heo
2012-11-07 11:00 ` Michal Hocko
2012-11-07 16:31 ` Tejun Heo
2012-11-07 16:39 ` [PATCH 9/9 v2] " Tejun Heo
2012-11-08 14:08 ` Michal Hocko
2012-11-08 14:18 ` Tejun Heo
2012-11-08 15:20 ` Michal Hocko
2012-11-08 15:29 ` Tejun Heo
2012-11-08 15:57 ` Michal Hocko
2012-11-08 17:57 ` [PATCH 9/9 v3] " Tejun Heo
2012-11-08 18:02 ` Michal Hocko
2012-11-08 18:04 ` Tejun Heo
2012-11-08 18:08 ` Michal Hocko
2012-11-08 18:01 ` [PATCHSET cgroup/for-3.8] " Tejun Heo
2012-11-09 17:15 ` Tejun Heo
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=20121108095353.GB31821@dhcp22.suse.cz \
--to=mhocko@suse.cz \
--cc=cgroups@vger.kernel.org \
--cc=containers@lists.linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=rjw@sisk.pl \
--cc=tj@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).