diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-05 13:04:34 +0800 |
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-05 13:04:34 +0800 |
| commit | fc600432cd23e35c85de2ff4468d816d6938a112 (patch) | |
| tree | c191c51e4458ec31c1d8254f01e23b2e1574b6f4 /kernel/sched/rt.c | |
| parent | db61550931957ee6c7dba751662919424b4344f3 (diff) | |
| parent | 4cbe5a555fa58a79b6ecbb6c531b8bab0650778d (diff) | |
| download | olio-linux-3.10-fc600432cd23e35c85de2ff4468d816d6938a112.tar.xz olio-linux-3.10-fc600432cd23e35c85de2ff4468d816d6938a112.zip | |
Merge tag 'v3.6-rc4' into asoc-omap
Linux 3.6-rc4
Diffstat (limited to 'kernel/sched/rt.c')
| -rw-r--r-- | kernel/sched/rt.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 573e1ca0110..944cb68420e 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -788,6 +788,19 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun) const struct cpumask *span; span = sched_rt_period_mask(); +#ifdef CONFIG_RT_GROUP_SCHED + /* + * FIXME: isolated CPUs should really leave the root task group, + * whether they are isolcpus or were isolated via cpusets, lest + * the timer run on a CPU which does not service all runqueues, + * potentially leaving other CPUs indefinitely throttled. If + * isolation is really required, the user will turn the throttle + * off to kill the perturbations it causes anyway. Meanwhile, + * this maintains functionality for boot and/or troubleshooting. + */ + if (rt_b == &root_task_group.rt_bandwidth) + span = cpu_online_mask; +#endif for_each_cpu(i, span) { int enqueue = 0; struct rt_rq *rt_rq = sched_rt_period_rt_rq(rt_b, i); |