https://github.com/torvalds/linux
Revision 1a67b9263e06688d7f683714cace8dcc203f8c55 authored by Ulf Hansson on 30 September 2020, 11:20:23 UTC, committed by Rafael J. Wysocki on 30 September 2020, 15:42:43 UTC
The commit eb1f00237aca ("lockdep,trace: Expose tracepoints"), started to
expose us for tracepoints. For imx6q cpuidle, this leads to an RCU splat
according to below.

[6.870684] [<c0db7690>] (_raw_spin_lock) from [<c011f6a4>] (imx6q_enter_wait+0x18/0x9c)
[6.878846] [<c011f6a4>] (imx6q_enter_wait) from [<c09abfb0>] (cpuidle_enter_state+0x168/0x5e4)

To fix the problem, let's assign the corresponding idlestate->flags the
CPUIDLE_FLAG_RCU_IDLE bit, which enables us to call rcu_idle_enter|exit()
at the proper point.

Reported-by: Dong Aisheng <aisheng.dong@nxp.com>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent eac53b3
History
Tip revision: 1a67b9263e06688d7f683714cace8dcc203f8c55 authored by Ulf Hansson on 30 September 2020, 11:20:23 UTC
ARM: imx6q: Fixup RCU usage for cpuidle
Tip revision: 1a67b92

back to top