lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 10 Jul 2015 22:58:02 +0530 From: Srikar Dronamraju <srikar@...ux.vnet.ibm.com> To: Ingo Molnar <mingo@...nel.org> Cc: Rik van Riel <riel@...hat.com>, Peter Zijlstra <peterz@...radead.org>, linux-kernel@...r.kernel.org, Mel Gorman <mgorman@...e.de> Subject: Re: [PATCH] sched/numa: Restore sched feature NUMA to its earlier avatar. > > > Which in itself is confusing: WTH do we have a generic switch called 'NUMA' and > > > then have it disabled? > > > > NUMA feature gets enabled on multi-node boxes because of > > > > start_kernel() -> numa_policy_init() -> check_numabalancing_enable() -> > > set_numabalancing_state() -> sched_feat_set("NUMA"); > > Ugh, that is nonsensical! > > If CONFIG_SCHED_DEBUG is disabled then sched_features is a constant value: > > # define const_debug const > > ... > > extern const_debug unsigned int sysctl_sched_features; > > sched_features are _only_ meant for debugging. They turn into an unchangeable set > of features when SCHED_DEBUG is disabled - and that is very much by design. > > The whole set_numabalancing_state() muck needs to be fixed. Would something like the below suffice. If yes I can send out a formal patch for the same. Here we are moving numabalancing_enabled variable to common i.e for both CONFIG_SCHED_DEBUG and !CONFIG_SCHED_DEBUG. Also removing sched_feat_numa because its no more getting used. numabalancing_enabled is already being used similarly in task_tick_fair and task_numa_fault. -------------->8------------------------------------------------------8<-------------- kernel/sched/core.c | 5 +++-- kernel/sched/fair.c | 2 +- kernel/sched/sched.h | 6 ------ 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 78b4bad10..69ccbda4 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2059,17 +2059,18 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p) } #ifdef CONFIG_NUMA_BALANCING +__read_mostly bool numabalancing_enabled; + #ifdef CONFIG_SCHED_DEBUG void set_numabalancing_state(bool enabled) { + numabalancing_enabled = enabled; if (enabled) sched_feat_set("NUMA"); else sched_feat_set("NO_NUMA"); } #else -__read_mostly bool numabalancing_enabled; - void set_numabalancing_state(bool enabled) { numabalancing_enabled = enabled; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 587a2f6..1b86455 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5679,7 +5679,7 @@ static int migrate_degrades_locality(struct task_struct *p, struct lb_env *env) if (!p->numa_faults || !(env->sd->flags & SD_NUMA)) return -1; - if (!sched_feat(NUMA)) + if (!numabalancing_enabled) return -1; src_nid = cpu_to_node(env->src_cpu); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 84d4879..d460fe3 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1014,14 +1014,8 @@ extern struct static_key sched_feat_keys[__SCHED_FEAT_NR]; #endif /* SCHED_DEBUG && HAVE_JUMP_LABEL */ #ifdef CONFIG_NUMA_BALANCING -#define sched_feat_numa(x) sched_feat(x) -#ifdef CONFIG_SCHED_DEBUG -#define numabalancing_enabled sched_feat_numa(NUMA) -#else extern bool numabalancing_enabled; -#endif /* CONFIG_SCHED_DEBUG */ #else -#define sched_feat_numa(x) (0) #define numabalancing_enabled (0) #endif /* CONFIG_NUMA_BALANCING */ -- Thanks and Regards Srikar Dronamraju -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists