diff options
author | Peter Zijlstra <[email protected]> | 2020-05-26 18:10:58 +0200 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2020-05-28 10:54:15 +0200 |
commit | 19a1f5ec699954d21be10f74ff71c2a7079e99ad (patch) | |
tree | 4ec037e6193e760846705d2a9bcb9948f03187aa /tools/perf/scripts/python/export-to-sqlite.py | |
parent | 58ef57b16d9e91cce1c640a6fe8a21d53a85181d (diff) |
sched: Fix smp_call_function_single_async() usage for ILB
The recent commit: 90b5363acd47 ("sched: Clean up scheduler_ipi()")
got smp_call_function_single_async() subtly wrong. Even though it will
return -EBUSY when trying to re-use a csd, that condition is not
atomic and still requires external serialization.
The change in kick_ilb() got this wrong.
While on first reading kick_ilb() has an atomic test-and-set that
appears to serialize the use, the matching 'release' is not in the
right place to actually guarantee this serialization.
Rework the nohz_idle_balance() trigger so that the release is in the
IPI callback and thus guarantees the required serialization for the
CSD.
Fixes: 90b5363acd47 ("sched: Clean up scheduler_ipi()")
Reported-by: Qian Cai <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Reviewed-by: Frederic Weisbecker <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions