The newly-merged sched_ext allows for the Linux kernel scheduler to be made more extensible by allowing BPF programs to be loaded to affect the kernel’s scheduling behavior. There’s now a similar take on CPU frequency scaling: cpufreq_ext. There’s a “request for comments” patch series on cpufreq_ext for making extensible CPU frequency scaling algorithm adaptations with BPF.
Yipeng Zou of Huawei has proposed cpufreq_ext as a CPU frequency governor based on BPF to allow for customizing and implementing different CPU frequency scaling strategies. Cpufreq_ext wants to provide a customizable framework for different systems and applications by providing greater CPUFreq control than other kernel-based options or the userspace governor that is less flexible. Cpufeq_ext can also integrate with sched_ext.
Those curious about this cpufreq_ext proposal can find the initial RFC patches on the Linux power management mailing list where it’s undergoing discussion.