Hide Forgot
(In reply to comment #0) > Description of problem: > Kernel got deadlock in function rcu_check_quiescent_state(). Here's how the > problem happen: > 1. CPU_1 was processing rcu callbacks via __rcu_process_callbacks > 2. CPU_2 call smp_call_function() to all other cpus in set_mtrr > 3. All other cpus including CPU_1 were beginning to run ipi_handler() as a > result of the smp all interruption. They all had already decreased the > data.count and been waiting for CPU_2 setting gate to 1. > 4. But interruption happened on CPU_2 before it set gate to 1. And then it > entered __rcu_process_callbacks too, so it got deadlock because the spinlock > was held by CPU_1. > > Please additional info for detailed vmcore analysis. > > Mark, can you try to reproduce using the debug kernel which has lockdep enabled? Thanks, P.
Created attachment 477896 [details] RHEL5 fix for this issue Mark, please apply and test. Thanks, P.
Prarit, Thanks for your patch. I have built a test kernel and delivered it to customer. I will come back to you when I get feedback from customer.