On 2018-03-27 13:01:07 [-0500], Grygorii Strashko wrote:
Hi Sebastian,Hi Grygorii,
I've took this RT version and applied "[RT] kernel/time/posix-timer: avoid schedule()â
while holding the RCU lock" [1] on top. Then I run below tests:
no stall or crashes were observed, but I've caught two "rcu_note_context_switch()" warnings
the warning is unrelated to the patch I posted. This should mute it:
Subject: [PATCH RT] rtmutex: annotate sleeping lock context
The RCU code complains on schedule() within a rcu_readlock() section.
The valid scenario on -RT is if a sleeping is held. In order to suppress
the warning the mirgrate_disable counter was used to identify the
invocation of schedule() due to lock contention.
Grygorii Strashko report that during CPU hotplug we might see the
warning via
rt_spin_lock() -> migrate_disable() -> pin_current_cpu() -> __read_rt_lock()
because the counter is not yet set.
It is also possible to trigger the warning from cpu_chill()
(seen on a kblockd_mod_delayed_work_on() caller).
To address this RCU warning I annotate the sleeping lock context. The
counter is incremented before migrate_disable() so the warning Grygorii
should not trigger anymore. Additionally I use that counter in
cpu_chill() to avoid the RCU warning from there.
--
Reported-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
---