aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_fair.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-01-25 15:08:34 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-25 15:08:34 -0500
commit5973e5b954848c63855a357ad4ff39882e3904f7 (patch)
treee88c2d900a228401cefc7e144bf5628434df18ac /kernel/sched_fair.c
parent5fb5e6de55860a99c2d8fe7e0c8222d5c53d8464 (diff)
sched: fix: don't take a mutex from interrupt context
print_cfs_stats is callable from interrupt context (sysrq), hence it should not take mutexes. Change it to use RCU since the task group data is RCU freed anyway. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r--kernel/sched_fair.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 1b3b40ad7c54..45ff4e9411e0 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -1434,9 +1434,9 @@ static void print_cfs_stats(struct seq_file *m, int cpu)
1434#ifdef CONFIG_FAIR_GROUP_SCHED 1434#ifdef CONFIG_FAIR_GROUP_SCHED
1435 print_cfs_rq(m, cpu, &cpu_rq(cpu)->cfs); 1435 print_cfs_rq(m, cpu, &cpu_rq(cpu)->cfs);
1436#endif 1436#endif
1437 lock_task_group_list(); 1437 rcu_read_lock();
1438 for_each_leaf_cfs_rq(cpu_rq(cpu), cfs_rq) 1438 for_each_leaf_cfs_rq(cpu_rq(cpu), cfs_rq)
1439 print_cfs_rq(m, cpu, cfs_rq); 1439 print_cfs_rq(m, cpu, cfs_rq);
1440 unlock_task_group_list(); 1440 rcu_read_unlock();
1441} 1441}
1442#endif 1442#endif