Messages in this thread Patch in this message | | | Subject | [PATCH] sched: fix rt-bandwidth hotplug race | From | Peter Zijlstra <> | Date | Thu, 14 Aug 2008 15:49:00 +0200 |
| |
Subject: sched: fix rt-bandwidth hotplug race From: Peter Zijlstra <a.p.zijlstra@chello.nl> Date: Thu Aug 14 15:42:44 CEST 2008
When we hot-unplug a cpu and rebuild the sched-domain, all cpus will be detatched. Alex observed the case where a runqueue was stealing bandwidth from an already disabled runqueue to satisfy its own needs.
Stop this by skipping over already disabled runqueues.
Reported-by: Alex Nixon <alex.nixon@citrix.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Tested-by: Alex Nixon <alex.nixon@citrix.com> --- kernel/sched_rt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6/kernel/sched_rt.c =================================================================== --- linux-2.6.orig/kernel/sched_rt.c +++ linux-2.6/kernel/sched_rt.c @@ -298,7 +298,7 @@ static void __disable_runtime(struct rq struct rt_rq *iter = sched_rt_period_rt_rq(rt_b, i); s64 diff; - if (iter == rt_rq) + if (iter == rt_rq || iter->rt_runtime == RUNTIME_INF) continue; spin_lock(&iter->rt_runtime_lock);
| |