Hi, On Tue, Feb 05, 2019 at 09:05:59PM +0800, Tom Li wrote: > On Tue, Feb 05, 2019 at 11:58:09AM +0200, Aaro Koskinen wrote: > > Can you try below fix? It works on my Loongson. > > Hello Aaro, thanks for your response. But in case you've missed > the original thread, please check it at: > > https://lkml.org/lkml/2018/11/13/857
OK, thanks. This looks slightly different from the Loongson problem: - In Loongson, we don't get stuck in RCU, but in cpufreq_dbs_governor_stop -> irq_work_sync(). - I run non-preemptible kernel, and my system still gets stuck. What is common is that it's UP with i8259 PIC. > My problem is NOT about how to fix the problem on Loongson (or > x86): the patch in the original thread (only has one-line-of-code, > simply changes timing of cpufreq_core_init), or your patch, is > indeed working. But they are workarounds, the real issue is the race > condition in cpufreq. Looking at irq_work_sync(), I cannot think how it could work on UP machine with interrupts disabled. A.