From: Li Zefan <lizefan@huawei.com>
To: Tejun Heo <tj@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
cgroups <cgroups@vger.kernel.org>
Subject: [PATCH 1/2] cgroup: make serial_nr_cursor available throughout cgroup.c
Date: Tue, 18 Jun 2013 18:48:18 +0800 [thread overview]
Message-ID: <51C03AF2.7050702@huawei.com> (raw)
The next patch will use it to determine if a cgroup is newly created
while we're iterating the cgroup hierarchy.
Signed-off-by: Li Zefan <lizefan@huawei.com>
---
These two patches are based on the fixes I just sent.
---
kernel/cgroup.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index e8a40e3..b1d98f2 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -198,6 +198,15 @@ static DEFINE_IDR(cgroup_hierarchy_idr);
static struct cgroup_name root_cgroup_name = { .name = "/" };
+/*
+ * Assign a monotonically increasing serial number. It guarantees
+ * cgroups with bigger numbers are newer than those with smaller
+ * numbers. Also with the list appending, it guarantees that sibling
+ * cgroups are always sorted in the ascending serial number order on
+ * the parent's ->children.
+ */
+static atomic64_t cgroup_serial_nr_cursor = ATOMIC64_INIT(0);
+
/* This flag indicates whether tasks in the fork and exit paths should
* check for fork/exit handlers to call. This avoids us having to do
* extra work in the fork/exit path if none of the subsystems need to
@@ -4212,7 +4221,6 @@ static void offline_css(struct cgroup_subsys *ss, struct cgroup *cgrp)
static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
umode_t mode)
{
- static atomic64_t serial_nr_cursor = ATOMIC64_INIT(0);
struct cgroup *cgrp;
struct cgroup_name *name;
struct cgroupfs_root *root = parent->root;
@@ -4305,7 +4313,7 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
* sorted in the ascending serial number order on the parent's
* ->children.
*/
- cgrp->serial_nr = atomic64_inc_return(&serial_nr_cursor);
+ cgrp->serial_nr = atomic64_inc_return(&cgroup_serial_nr_cursor);
/* allocation complete, commit to creation */
list_add_tail(&cgrp->allcg_node, &root->allcg_list);
--
1.8.0.2
next reply other threads:[~2013-06-18 10:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-18 10:48 Li Zefan [this message]
[not found] ` <51C03AF2.7050702-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-06-18 10:48 ` [PATCH 2/2] cgroup: convert cgroup_cft_commit() to use cgroup_for_each_descendant_pre() Li Zefan
2013-06-18 10:48 ` Li Zefan
[not found] ` <51C03B05.4080504-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-06-18 18:16 ` Tejun Heo
2013-06-18 18:16 ` Tejun Heo
2013-06-18 18:18 ` [PATCH 3/3] cgroup: clean up cgroup_serial_nr_cursor Tejun Heo
2013-06-18 18:18 ` Tejun Heo
2013-06-18 10:53 ` [PATCH 1/2][UPDATED] cgroup: make serial_nr_cursor available throughout cgroup.c Li Zefan
2013-06-18 10:53 ` Li Zefan
[not found] ` <51C03C41.2040704-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-06-18 18:16 ` Tejun Heo
2013-06-18 18:16 ` 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=51C03AF2.7050702@huawei.com \
--to=lizefan@huawei.com \
--cc=cgroups@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--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 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.