Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1225664 > unrolled thread
| Started by | Tejun Heo <tj@kernel.org> |
|---|---|
| First post | 2015-09-16 04:00 +0200 |
| Last post | 2015-09-18 18:00 +0200 |
| Articles | 9 — 3 participants |
Back to article view | Back to linux.kernel
[PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
[PATCH 2/4] cgroup: implement static_key based cgroup_subsys_enabled() and cgroup_subsys_on_dfl() Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
[PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Peter Zijlstra <peterz@infradead.org> - 2015-09-17 11:10 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Tejun Heo <tj@kernel.org> - 2015-09-17 17:30 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Peter Zijlstra <peterz@infradead.org> - 2015-09-17 17:50 +0200
[PATCH 3/4] cgroup: replace cgroup_subsys->disabled tests with cgroup_subsys_enabled() Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Zefan Li <lizefan@huawei.com> - 2015-09-18 11:20 +0200
Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Tejun Heo <tj@kernel.org> - 2015-09-18 18:00 +0200
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-16 04:00 +0200 |
| Subject | [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests |
| Message-ID | <q9aaS-6Rm-7@gated-at.bofh.it> |
cgroup_subsys->disabled and cgroup_on_dfl() tests are likely to be used in hot paths and seldom change. The former is set once during boot and the latter only when a controller is migrated between the default hierarchy and traditional ones. This patchset makes these tests static_key based and contains the following four patches. 0001-jump_label-make-static_key_enabled-work-on-static_ke.patch 0002-cgroup-implement-static_key-based-cgroup_subsys_enab.patch 0003-cgroup-replace-cgroup_subsys-disabled-tests-with-cgr.patch 0004-cgroup-replace-cgroup_on_dfl-tests-in-controllers-wi.patch 0001 is a prep patch in jump_label. 0002 adds the needed static_keys. 0003-0004 convert the existing usages and drop the old tests. This patchset is on top of v4.3-rc1 and is availalbe in the following git branch. git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-jump-labels diffstat follows. Thanks. block/blk-throttle.c | 2 block/cfq-iosched.c | 4 - include/linux/cgroup-defs.h | 1 include/linux/cgroup.h | 79 +++++++--------------------- include/linux/hugetlb_cgroup.h | 4 - include/linux/jump_label.h | 18 +++--- include/linux/memcontrol.h | 4 - kernel/cgroup.c | 113 ++++++++++++++++++++++++++++++++++++++--- kernel/cpuset.c | 23 ++++---- mm/memcontrol.c | 4 - 10 files changed, 157 insertions(+), 95 deletions(-) -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-16 04:00 +0200 |
| Subject | [PATCH 2/4] cgroup: implement static_key based cgroup_subsys_enabled() and cgroup_subsys_on_dfl() |
| Message-ID | <q9aaS-6Rm-15@gated-at.bofh.it> |
| In reply to | #1225664 |
Whether a subsys is enabled and attached to the default hierarchy
seldom changes and may be tested in the hot paths. This patch
implements static_key based cgroup_subsys_enabled() and
cgroup_subsys_on_dfl() tests.
The following patches will update the users and remove duplicate
mechanisms.
Signed-off-by: Tejun Heo <tj@kernel.org>
---
include/linux/cgroup.h | 21 +++++++++++++++++++++
kernel/cgroup.c | 27 ++++++++++++++++++++++++++-
2 files changed, 47 insertions(+), 1 deletion(-)
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index eb7ca55..c3a9f1e 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -17,6 +17,7 @@
#include <linux/fs.h>
#include <linux/seq_file.h>
#include <linux/kernfs.h>
+#include <linux/jump_label.h>
#include <linux/cgroup-defs.h>
@@ -50,6 +51,26 @@ extern struct css_set init_css_set;
#include <linux/cgroup_subsys.h>
#undef SUBSYS
+#define SUBSYS(_x) \
+ extern struct static_key_true _x ## _cgrp_subsys_enabled_key; \
+ extern struct static_key_true _x ## _cgrp_subsys_on_dfl_key;
+#include <linux/cgroup_subsys.h>
+#undef SUBSYS
+
+/**
+ * cgroup_subsys_enabled - fast test on whether a subsys is enabled
+ * @ss: subsystem in question
+ */
+#define cgroup_subsys_enabled(ss) \
+ static_branch_likely(&ss ## _enabled_key)
+
+/**
+ * cgroup_subsys_on_dfl - fast test on whether a subsys is on default hierarchy
+ * @ss: subsystem in question
+ */
+#define cgroup_subsys_on_dfl(ss) \
+ static_branch_likely(&ss ## _on_dfl_key)
+
bool css_has_online_children(struct cgroup_subsys_state *css);
struct cgroup_subsys_state *css_from_id(int id, struct cgroup_subsys *ss);
struct cgroup_subsys_state *cgroup_get_e_css(struct cgroup *cgroup,
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 2cf0f79..3619389 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -139,6 +139,27 @@ static const char *cgroup_subsys_name[] = {
};
#undef SUBSYS
+/* array of static_keys for cgroup_subsys_enabled() and cgroup_subsys_on_dfl() */
+#define SUBSYS(_x) \
+ DEFINE_STATIC_KEY_TRUE(_x ## _cgrp_subsys_enabled_key); \
+ DEFINE_STATIC_KEY_TRUE(_x ## _cgrp_subsys_on_dfl_key); \
+ EXPORT_SYMBOL_GPL(_x ## _cgrp_subsys_enabled_key); \
+ EXPORT_SYMBOL_GPL(_x ## _cgrp_subsys_on_dfl_key);
+#include <linux/cgroup_subsys.h>
+#undef SUBSYS
+
+#define SUBSYS(_x) [_x ## _cgrp_id] = &_x ## _cgrp_subsys_enabled_key,
+static struct static_key_true *cgroup_subsys_enabled_key[] = {
+#include <linux/cgroup_subsys.h>
+};
+#undef SUBSYS
+
+#define SUBSYS(_x) [_x ## _cgrp_id] = &_x ## _cgrp_subsys_on_dfl_key,
+static struct static_key_true *cgroup_subsys_on_dfl_key[] = {
+#include <linux/cgroup_subsys.h>
+};
+#undef SUBSYS
+
/*
* The default hierarchy, reserved for the subsystems that are otherwise
* unattached - it never has more than a single cgroup, and all tasks are
@@ -1319,9 +1340,12 @@ static int rebind_subsystems(struct cgroup_root *dst_root,
/* default hierarchy doesn't enable controllers by default */
dst_root->subsys_mask |= 1 << ssid;
- if (dst_root != &cgrp_dfl_root) {
+ if (dst_root == &cgrp_dfl_root) {
+ static_branch_enable(cgroup_subsys_on_dfl_key[ssid]);
+ } else {
dst_root->cgrp.subtree_control |= 1 << ssid;
cgroup_refresh_child_subsys_mask(&dst_root->cgrp);
+ static_branch_disable(cgroup_subsys_on_dfl_key[ssid]);
}
if (ss->bind)
@@ -5483,6 +5507,7 @@ static int __init cgroup_disable(char *str)
strcmp(token, ss->legacy_name))
continue;
+ static_branch_disable(cgroup_subsys_enabled_key[i]);
ss->disabled = 1;
printk(KERN_INFO "Disabling %s control group subsystem\n",
ss->name);
--
2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-16 04:00 +0200 |
| Subject | [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too |
| Message-ID | <q9aaS-6Rm-9@gated-at.bofh.it> |
| In reply to | #1225664 |
static_key_enabled() can be used on struct static_key but not on its
wrapper types static_key_true and static_key_false. The function is
useful for debugging and management of static keys. Update it so that
it can be used for the wrapper types too.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
Hello,
If this patch is acceptable, please let me know how it should be
routed.
Thanks.
include/linux/jump_label.h | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 7f653e8..c9ca050 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -216,11 +216,6 @@ static inline int jump_label_apply_nops(struct module *mod)
#define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
#define jump_label_enabled static_key_enabled
-static inline bool static_key_enabled(struct static_key *key)
-{
- return static_key_count(key) > 0;
-}
-
static inline void static_key_enable(struct static_key *key)
{
int count = static_key_count(key);
@@ -267,6 +262,17 @@ struct static_key_false {
#define DEFINE_STATIC_KEY_FALSE(name) \
struct static_key_false name = STATIC_KEY_FALSE_INIT
+extern bool ____wrong_branch_error(void);
+
+#define static_key_enabled(x) \
+({ \
+ if (!__builtin_types_compatible_p(typeof(*x), struct static_key) && \
+ !__builtin_types_compatible_p(typeof(*x), struct static_key_true) &&\
+ !__builtin_types_compatible_p(typeof(*x), struct static_key_false)) \
+ ____wrong_branch_error(); \
+ static_key_count((struct static_key *)x) > 0; \
+})
+
#ifdef HAVE_JUMP_LABEL
/*
@@ -325,8 +331,6 @@ struct static_key_false {
* See jump_label_type() / jump_label_init_type().
*/
-extern bool ____wrong_branch_error(void);
-
#define static_branch_likely(x) \
({ \
bool branch; \
--
2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2015-09-17 11:10 +0200 |
| Subject | Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too |
| Message-ID | <q9Dmx-7n1-17@gated-at.bofh.it> |
| In reply to | #1225667 |
On Tue, Sep 15, 2015 at 09:51:22PM -0400, Tejun Heo wrote: > static_key_enabled() can be used on struct static_key but not on its > wrapper types static_key_true and static_key_false. The function is > useful for debugging and management of static keys. Update it so that > it can be used for the wrapper types too. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Andrew Morton <akpm@linux-foundation.org> > --- > Hello, > > If this patch is acceptable, please let me know how it should be > routed. > Yeah, no problem with this, I'm assuming there's dependencies in the patches you didn't send me? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-17 17:30 +0200 |
| Subject | Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too |
| Message-ID | <q9Jij-7CU-37@gated-at.bofh.it> |
| In reply to | #1226786 |
On Thu, Sep 17, 2015 at 10:59:57AM +0200, Peter Zijlstra wrote: > On Tue, Sep 15, 2015 at 09:51:22PM -0400, Tejun Heo wrote: > > static_key_enabled() can be used on struct static_key but not on its > > wrapper types static_key_true and static_key_false. The function is > > useful for debugging and management of static keys. Update it so that > > it can be used for the wrapper types too. > > > > Signed-off-by: Tejun Heo <tj@kernel.org> > > Cc: Peter Zijlstra <peterz@infradead.org> > > Cc: Andrew Morton <akpm@linux-foundation.org> > > --- > > Hello, > > > > If this patch is acceptable, please let me know how it should be > > routed. > > > > Yeah, no problem with this, I'm assuming there's dependencies in the > patches you didn't send me? Yeap, later patches add static_keys for testing whether a controller is enabled and whether it's on the new or old hierarchy and management path in cgroup core needs to index the keys and test them. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2015-09-17 17:50 +0200 |
| Subject | Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too |
| Message-ID | <q9JBF-80u-39@gated-at.bofh.it> |
| In reply to | #1227127 |
On Thu, Sep 17, 2015 at 11:27:52AM -0400, Tejun Heo wrote: > On Thu, Sep 17, 2015 at 10:59:57AM +0200, Peter Zijlstra wrote: > > On Tue, Sep 15, 2015 at 09:51:22PM -0400, Tejun Heo wrote: > > > static_key_enabled() can be used on struct static_key but not on its > > > wrapper types static_key_true and static_key_false. The function is > > > useful for debugging and management of static keys. Update it so that > > > it can be used for the wrapper types too. > > > > > > Signed-off-by: Tejun Heo <tj@kernel.org> > > > Cc: Peter Zijlstra <peterz@infradead.org> > > > Cc: Andrew Morton <akpm@linux-foundation.org> > > > --- > > > Hello, > > > > > > If this patch is acceptable, please let me know how it should be > > > routed. > > > > > > > Yeah, no problem with this, I'm assuming there's dependencies in the > > patches you didn't send me? > > Yeap, later patches add static_keys for testing whether a controller > is enabled and whether it's on the new or old hierarchy and management > path in cgroup core needs to index the keys and test them. Ok, take it through you tree then, its a small enough patch. Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-16 04:00 +0200 |
| Subject | [PATCH 3/4] cgroup: replace cgroup_subsys->disabled tests with cgroup_subsys_enabled() |
| Message-ID | <q9aaS-6Rm-11@gated-at.bofh.it> |
| In reply to | #1225664 |
Replace cgroup_subsys->disabled tests in controllers with
cgroup_subsys_enabled(). cgroup_subsys_enabled() requires literal
subsys name as its parameter and thus can't be used for cgroup core
which iterates through controllers. For cgroup core, introduce and
use cgroup_ssid_enabled() which uses slower static_key_enabled() test
and can be indexed by subsys ID.
This leaves cgroup_subsys->disabled unused. Removed.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
---
include/linux/cgroup-defs.h | 1 -
include/linux/hugetlb_cgroup.h | 4 +---
include/linux/memcontrol.h | 4 +---
kernel/cgroup.c | 28 +++++++++++++++++++++-------
4 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h
index 4d8fcf2..c5d41c3 100644
--- a/include/linux/cgroup-defs.h
+++ b/include/linux/cgroup-defs.h
@@ -419,7 +419,6 @@ struct cgroup_subsys {
struct task_struct *task);
void (*bind)(struct cgroup_subsys_state *root_css);
- int disabled;
int early_init;
/*
diff --git a/include/linux/hugetlb_cgroup.h b/include/linux/hugetlb_cgroup.h
index bcc853e..7edd305 100644
--- a/include/linux/hugetlb_cgroup.h
+++ b/include/linux/hugetlb_cgroup.h
@@ -48,9 +48,7 @@ int set_hugetlb_cgroup(struct page *page, struct hugetlb_cgroup *h_cg)
static inline bool hugetlb_cgroup_disabled(void)
{
- if (hugetlb_cgrp_subsys.disabled)
- return true;
- return false;
+ return !cgroup_subsys_enabled(hugetlb_cgrp_subsys);
}
extern int hugetlb_cgroup_charge_cgroup(int idx, unsigned long nr_pages,
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index ad800e6..9aa7820 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -347,9 +347,7 @@ ino_t page_cgroup_ino(struct page *page);
static inline bool mem_cgroup_disabled(void)
{
- if (memory_cgrp_subsys.disabled)
- return true;
- return false;
+ return !cgroup_subsys_enabled(memory_cgrp_subsys);
}
/*
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 3619389..5703ba7 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -224,6 +224,19 @@ static void kill_css(struct cgroup_subsys_state *css);
static int cgroup_addrm_files(struct cgroup *cgrp, struct cftype cfts[],
bool is_add);
+/**
+ * cgroup_ssid_enabled - cgroup subsys enabled test by subsys ID
+ * @ssid: subsys ID of interest
+ *
+ * cgroup_subsys_enabled() can only be used with literal subsys names which
+ * is fine for individual subsystems but unsuitable for cgroup core. This
+ * is slower static_key_enabled() based test indexed by @ssid.
+ */
+static bool cgroup_ssid_enabled(int ssid)
+{
+ return static_key_enabled(cgroup_subsys_enabled_key[ssid]);
+}
+
/* IDR wrappers which synchronize using cgroup_idr_lock */
static int cgroup_idr_alloc(struct idr *idr, void *ptr, int start, int end,
gfp_t gfp_mask)
@@ -1482,7 +1495,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
for_each_subsys(ss, i) {
if (strcmp(token, ss->legacy_name))
continue;
- if (ss->disabled)
+ if (!cgroup_ssid_enabled(i))
continue;
/* Mutually exclusive option 'all' + subsystem name */
@@ -1513,7 +1526,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
*/
if (all_ss || (!one_ss && !opts->none && !opts->name))
for_each_subsys(ss, i)
- if (!ss->disabled)
+ if (cgroup_ssid_enabled(i))
opts->subsys_mask |= (1 << i);
/*
@@ -2762,7 +2775,8 @@ static ssize_t cgroup_subtree_control_write(struct kernfs_open_file *of,
if (tok[0] == '\0')
continue;
for_each_subsys_which(ss, ssid, &tmp_ss_mask) {
- if (ss->disabled || strcmp(tok + 1, ss->name))
+ if (!cgroup_ssid_enabled(ssid) ||
+ strcmp(tok + 1, ss->name))
continue;
if (*tok == '+') {
@@ -3320,7 +3334,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
{
int ret;
- if (ss->disabled)
+ if (!cgroup_ssid_enabled(ss->id))
return 0;
if (!cfts || cfts[0].name[0] == '\0')
@@ -5082,7 +5096,7 @@ int __init cgroup_init(void)
* disabled flag and cftype registration needs kmalloc,
* both of which aren't available during early_init.
*/
- if (ss->disabled)
+ if (!cgroup_ssid_enabled(ssid))
continue;
cgrp_dfl_root.subsys_mask |= 1 << ss->id;
@@ -5217,7 +5231,8 @@ static int proc_cgroupstats_show(struct seq_file *m, void *v)
for_each_subsys(ss, i)
seq_printf(m, "%s\t%d\t%d\t%d\n",
ss->legacy_name, ss->root->hierarchy_id,
- atomic_read(&ss->root->nr_cgrps), !ss->disabled);
+ atomic_read(&ss->root->nr_cgrps),
+ cgroup_ssid_enabled(i));
mutex_unlock(&cgroup_mutex);
return 0;
@@ -5508,7 +5523,6 @@ static int __init cgroup_disable(char *str)
continue;
static_branch_disable(cgroup_subsys_enabled_key[i]);
- ss->disabled = 1;
printk(KERN_INFO "Disabling %s control group subsystem\n",
ss->name);
break;
--
2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Zefan Li <lizefan@huawei.com> |
|---|---|
| Date | 2015-09-18 11:20 +0200 |
| Subject | Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests |
| Message-ID | <q9ZZM-6Jw-21@gated-at.bofh.it> |
| In reply to | #1225664 |
On 2015/9/16 9:51, Tejun Heo wrote: > cgroup_subsys->disabled and cgroup_on_dfl() tests are likely to be > used in hot paths and seldom change. The former is set once during > boot and the latter only when a controller is migrated between the > default hierarchy and traditional ones. > > This patchset makes these tests static_key based and contains the > following four patches. > > 0001-jump_label-make-static_key_enabled-work-on-static_ke.patch > 0002-cgroup-implement-static_key-based-cgroup_subsys_enab.patch > 0003-cgroup-replace-cgroup_subsys-disabled-tests-with-cgr.patch > 0004-cgroup-replace-cgroup_on_dfl-tests-in-controllers-wi.patch > > 0001 is a prep patch in jump_label. 0002 adds the needed static_keys. > 0003-0004 convert the existing usages and drop the old tests. > > This patchset is on top of v4.3-rc1 and is availalbe in the following > git branch. > > git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-jump-labels > > diffstat follows. Thanks. > > block/blk-throttle.c | 2 > block/cfq-iosched.c | 4 - > include/linux/cgroup-defs.h | 1 > include/linux/cgroup.h | 79 +++++++--------------------- > include/linux/hugetlb_cgroup.h | 4 - > include/linux/jump_label.h | 18 +++--- > include/linux/memcontrol.h | 4 - > kernel/cgroup.c | 113 ++++++++++++++++++++++++++++++++++++++--- > kernel/cpuset.c | 23 ++++---- > mm/memcontrol.c | 4 - > 10 files changed, 157 insertions(+), 95 deletions(-) > Acked-by: Zefan Li <lizefan@huawei.com> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2015-09-18 18:00 +0200 |
| Subject | Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests |
| Message-ID | <qa6eT-75X-51@gated-at.bofh.it> |
| In reply to | #1225664 |
On Tue, Sep 15, 2015 at 09:51:21PM -0400, Tejun Heo wrote: > cgroup_subsys->disabled and cgroup_on_dfl() tests are likely to be > used in hot paths and seldom change. The former is set once during > boot and the latter only when a controller is migrated between the > default hierarchy and traditional ones. Applying to cgroup/for-4.4. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web