diff options
author | Mike Galbraith <efault@gmx.de> | 2009-09-09 09:41:37 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-09-09 11:30:05 -0400 |
commit | 2bba22c50b06abe9fd0d23933b1e64d35b419262 (patch) | |
tree | 5ac0373fa1d18f043cb27183f9f185ceda598915 /kernel/sysctl.c | |
parent | b5d9d734a53e0204aab0089079cbde2a1285a38f (diff) |
sched: Turn off child_runs_first
Set child_runs_first default to off.
It hurts 'optimal' make -j<NR_CPUS> workloads as make jobs
get preempted by child tasks, reducing parallelism.
Note, this patch might make existing races in user
applications more prominent than before - so breakages
might be bisected to this commit.
Child-runs-first is broken on SMP to begin with, and we
already had it off briefly in v2.6.23 so most of the
offenders ought to be fixed. Would be nice not to revert
this commit but fix those apps finally ...
Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1252486344.28645.18.camel@marge.simson.net>
[ made the sysctl independent of CONFIG_SCHED_DEBUG, in case
people want to work around broken apps. ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 6c9836ef4b47..25d6bf3383be 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -246,6 +246,14 @@ static int max_wakeup_granularity_ns = NSEC_PER_SEC; /* 1 second */ | |||
246 | #endif | 246 | #endif |
247 | 247 | ||
248 | static struct ctl_table kern_table[] = { | 248 | static struct ctl_table kern_table[] = { |
249 | { | ||
250 | .ctl_name = CTL_UNNUMBERED, | ||
251 | .procname = "sched_child_runs_first", | ||
252 | .data = &sysctl_sched_child_runs_first, | ||
253 | .maxlen = sizeof(unsigned int), | ||
254 | .mode = 0644, | ||
255 | .proc_handler = &proc_dointvec, | ||
256 | }, | ||
249 | #ifdef CONFIG_SCHED_DEBUG | 257 | #ifdef CONFIG_SCHED_DEBUG |
250 | { | 258 | { |
251 | .ctl_name = CTL_UNNUMBERED, | 259 | .ctl_name = CTL_UNNUMBERED, |
@@ -300,14 +308,6 @@ static struct ctl_table kern_table[] = { | |||
300 | }, | 308 | }, |
301 | { | 309 | { |
302 | .ctl_name = CTL_UNNUMBERED, | 310 | .ctl_name = CTL_UNNUMBERED, |
303 | .procname = "sched_child_runs_first", | ||
304 | .data = &sysctl_sched_child_runs_first, | ||
305 | .maxlen = sizeof(unsigned int), | ||
306 | .mode = 0644, | ||
307 | .proc_handler = &proc_dointvec, | ||
308 | }, | ||
309 | { | ||
310 | .ctl_name = CTL_UNNUMBERED, | ||
311 | .procname = "sched_features", | 311 | .procname = "sched_features", |
312 | .data = &sysctl_sched_features, | 312 | .data = &sysctl_sched_features, |
313 | .maxlen = sizeof(unsigned int), | 313 | .maxlen = sizeof(unsigned int), |