Suggesting that schedutil is compiled directly into the kernel and ondemand is available as a module (like powersave).
Yet neither schedutil nor ondemand show up in /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors above.
Am I missing something? Thought it could be related to intel_pstate, so I added the kernel parameter intel_pstate=disable, assuming it would default to acpi-cpufreq.
Not sure if there’s another step needed to enable the schedutil or ondemand governors.
Each scaling driver only supports some of these scaling governors and the scaling drivers you are able to use depend on your specific CPU.
My modern AMD CPU system also only supports these two governors. Though the performance governor has sub-modes exposed in /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference.
Were you ever able to use these scaling governors on other distros?
Also, what are you actually trying to achieve with changing the governor? I smell an XY problem.
As I said, I thought it might be scaling driver related. I did add a blacklist and intel_pstate=disable in the kernel parameters. It does not switch to acpi-cpufreq but reverts to intel_pstate.
(2) I believe AMD CPUs typically support both schedutil and ondemand.
(3) It’s functionally new and hasn’t run anything except for nixOS since purchase.
(4) I’m just trying to dynamically adjust CPU frequencies based on workload in real-time, instead of hard-coding performance or powersave governor modes.
At the moment, I have the latter set, which offers a only slight reduction in bogo ops performance so it isn’t too bad.
I don’t know if that generation of Intel CPU can be driven by anything but intel_pstate. IIRC they stopped supporting CPUs around that time and even if it was supported at some point, newer kernels may have removed support.
You cannot make such a general statement. At most you can generalise a certain generation or perhaps a specific platform generation.
You’re projecting your experiences with a totally different platform then I assume?
As mentioned, these do not hold true.
And what are you ultimately attempting to achieve by doing that?
You generally don’t want to be dynamically managing any CPU frequency. What you typically want to do is set a policy how quickly the CPU should ramp its frequency and how much power it should be allowed to consume. The CPU then handles the rest; implementing the given policy.