diff options
author | Cheng Xu <chengxu@linux.vnet.ibm.com> | 2011-05-14 14:20:02 +0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-05-16 11:00:54 +0200 |
commit | ec514c487c3d4b652943da7b0afbc094eee08cfa (patch) | |
tree | d6766fd9a3f6eec2816a8191cf02f14564ba7473 /drivers/char | |
parent | bd1a643e10eb8782b36b47c3602300319dd2fb00 (diff) |
sched: Fix rt_rq runtime leakage bug
This patch is to fix the real-time scheduler bug reported at:
https://lkml.org/lkml/2011/4/26/13
That is, when running multiple real-time threads on every logical CPUs
and then turning off one CPU, the kernel will bug at function
__disable_runtime().
Function __disable_runtime() bugs and reports leakage of rt_rq runtime.
The root cause is __disable_runtime() assumes it iterates through all
the existing rt_rq's while walking rq->leaf_rt_rq_list, which actually
contains only runnable rt_rq's. This problem also applies to
__enable_runtime() and print_rt_stats().
The patch is based on above analysis, appears to fix the problem, but is
only lightly tested.
Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Cheng Xu <chengxu@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/4DCE1F12.6040609@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/char')
0 files changed, 0 insertions, 0 deletions