diff options
author | Michael wang <[email protected]> | 2013-11-13 11:10:56 +0800 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2013-11-13 13:33:50 +0100 |
commit | 106dd5afde3cd10db7e1370b6ddc77f0b2496a75 (patch) | |
tree | 5a83870657588c076e17d59a19a3c27f20fe38cb /tools/perf/scripts/python | |
parent | 9b66bfb28049594fe2bb2b91607ba302f511ce8b (diff) |
sched: Fix endless sync_sched/rcu() loop inside _cpu_down()
Commit 6acce3ef8:
sched: Remove get_online_cpus() usage
tries to do sync_sched/rcu() inside _cpu_down() but triggers:
INFO: task swapper/0:1 blocked for more than 120 seconds.
...
[<ffffffff811263dc>] synchronize_rcu+0x2c/0x30
[<ffffffff81d1bd82>] _cpu_down+0x2b2/0x340
...
It was caused by that in the rcu boost case we rely on smpboot thread to
finish the rcu callback, which has already been parked before sync in here
and leads to the endless sync_sched/rcu().
This patch exchanges the sequence of smpboot_park_threads() and
sync_sched/rcu() to fix the bug.
Reported-by: Fengguang Wu <[email protected]>
Tested-by: Fengguang Wu <[email protected]>
Signed-off-by: Michael Wang <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions