[BUG] schedutil governor produces regular max freq spikes because of lockup detector watchdog threads

Leonard Crestez
2018-01-05T20:37:40Z

Hello,

When using the schedutil governor together with the softlockup detector
all CPUs go to their maximum frequency on a regular basis. This seems
to be because the watchdog creates a RT thread on each CPU and this
causes regular kicks with:

cpufreq_update_this_cpu(rq, SCHED_CPUFREQ_RT);

The schedutil governor responds to this by immediately setting the
maximum cpu frequency, this is very undesirable.

The issue can be fixed by this patch from android:
https://patchwork.kernel.org/patch/9301909/

The patch stalled in a long discussion about how it's difficult for
cpufreq to deal with RT and how some RT users might just disable
cpufreq. It is indeed hard but if the system experiences regular power
kicks from a common debug feature they will end up disabling schedutil
instead. No other governors behave this way, perhaps the current
behavior should be considered a bug in schedutil.

That patch now has conflicts with latest upstream. Perhaps a modified
variant should be reconsidered for inclusion, or is there some other
solution pending?

Alternatively the watchdog threads could be somehow marked as to never
cause increased cpufreq.

--
Regards,
Leonard