On 02-11-15, 11:14, Stephen Boyd wrote:
On 10/31, Viresh Kumar wrote:
I don't know what is wrong (or right) with my exynos 5250 board, but I didn't got any splat here even with the right config options (yes I should have mentioned that earlier). I have seen this at other times as well, while we were running after some cpufreq traces..
But, the case in hand is pretty straight forward and Mike T. did get a splat as that's what he told me. We are calling a sleep-able function from rcu_lock and that's obviously wrong.
That's slightly concerning. Given that the bug is so straight forward but we can't reproduce it doesn't instill a lot of confidence that the patch is correct.
Good that I spent some time debugging why I wasn't able to hit the lockdep. And that's because by default CONFIG_PREEMPT_RCU was selected on exynos and so the dummy function was getting enabled, and so no WARN.
#if defined(CONFIG_PROVE_RCU) && !defined(CONFIG_PREEMPT_RCU) static inline void rcu_preempt_sleep_check(void) { RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map), "Illegal context switch in RCU read-side critical section"); } #else /* #ifdef CONFIG_PROVE_RCU */ static inline void rcu_preempt_sleep_check(void) { } #endif /* #else #ifdef CONFIG_PROVE_RCU */
Whereas for omap, that's not the case :)
So, with some config changes, I was able to hit the lockdep :)
And just to confirm, they got fixed by the $Subject patch :)