On 2020.06.23 07:22 Quentin Perret wrote: > > This series enables users of prebuilt kernels (e.g. distro kernels) to > specify their CPUfreq governor of choice using the kernel command line, > instead of having to wait for the system to fully boot to userspace to > switch using the sysfs interface. This is helpful for 2 reasons: > 1. users get to choose the governor that runs during the actual boot; > 2. it simplifies the userspace boot procedure a bit (one less thing to > worry about). > > To enable this, the first patch moves all governor init calls to > core_initcall, to make sure they are registered by the time the drivers > probe. This should be relatively low impact as registering a governor > is a simple procedure (it gets added to a llist), and all governors > already load at core_initcall anyway when they're set as the default > in Kconfig. This also allows to clean-up the governors' init/exit code, > and reduces boilerplate. > > The second patch introduces the new command line parameter, inspired by > its cpuidle counterpart. More details can be found in the respective > patch headers. > > Changes in v2: > - added Viresh's ack to patch 01 > - moved the assignment of 'default_governor' in patch 02 to the governor > registration path instead of the driver registration (Viresh) > > Thanks, > Quentin > > Quentin Perret (2): > cpufreq: Register governors at core_initcall > cpufreq: Specify default governor on command line > > .../admin-guide/kernel-parameters.txt | 5 ++++ > Documentation/admin-guide/pm/cpufreq.rst | 6 ++--- > .../platforms/cell/cpufreq_spudemand.c | 26 ++----------------- > drivers/cpufreq/cpufreq.c | 23 ++++++++++++---- > drivers/cpufreq/cpufreq_conservative.c | 22 ++++------------ > drivers/cpufreq/cpufreq_ondemand.c | 24 +++++------------ > drivers/cpufreq/cpufreq_performance.c | 14 ++-------- > drivers/cpufreq/cpufreq_powersave.c | 18 +++---------- > drivers/cpufreq/cpufreq_userspace.c | 18 +++---------- > include/linux/cpufreq.h | 14 ++++++++++ > kernel/sched/cpufreq_schedutil.c | 6 +---- > 11 files changed, 62 insertions(+), 114 deletions(-) > > -- > 2.27.0.111.gc72c7da667-goog
Hi Quentin, Because I am lazy and sometimes do not want to recompile the distro source, I have a need/desire for this. Tested these two grub command lines: GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=300 intel_pstate=disable cpufreq.default_governor=schedutil cpuidle_sysfs_switch cpuidle.governor=teo" And #GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=450 intel_pstate=passive cpufreq.default_governor=schedutil cpuidle_sysfs_switch cpuidle.governor=teo" And all worked as expected. I use Ubuntu as my distro, and also had to disable a startup script that switches to "ondemand", or similar, after 1 minute. As a side note (separate subject, but is one reason I tried it): My i5-9600K based computer seems to hit a power limit during boot approximately 3 seconds after kernel selection on grub. This had no effect on that issue (even when selecting powersave governor). ... Doug