/linux/drivers/cpufreq/ |
H A D | Kconfig | 12 clock speed, you need to either enable a dynamic cpufreq governor 38 prompt "Default CPUFreq governor" 44 This option sets which CPUFreq governor shall be loaded at 51 Use the CPUFreq governor 'performance' as default. This sets 59 Use the CPUFreq governor 'powersave' as default. This sets 67 Use the CPUFreq governor 'userspace' as default. This allows 70 to enable the userspace governor manually. 78 Use the CPUFreq governor 'ondemand' as default. This allows 82 governor. If unsure have a look at the help section of the 83 driver. Fallback governor will be the performance governor. [all …]
|
H A D | cpufreq.c | 693 * cpufreq_parse_governor - parse a governor string only for has_target() 694 * @str_governor: Governor name. 795 else if (policy->governor) in show_scaling_governor() 796 return sysfs_emit(buf, "%s\n", policy->governor->name); in show_scaling_governor() 914 if (!policy->governor || !policy->governor->store_setspeed) in store_scaling_setspeed() 921 policy->governor->store_setspeed(policy, freq); in store_scaling_setspeed() 928 if (!policy->governor || !policy->governor->show_setspeed) in show_scaling_setspeed() 931 return policy->governor->show_setspeed(policy, buf); in show_scaling_setspeed() 1101 /* Update policy governor to the one used before hotplug. */ in cpufreq_init_policy() 1104 pr_debug("Restoring governor %s for cpu %d\n", in cpufreq_init_policy() [all …]
|
/linux/drivers/devfreq/ |
H A D | devfreq.c | 31 #include "governor.h" 256 * find_devfreq_governor() - find devfreq governor from name 257 * @name: name of the governor 260 * governor's pointer. devfreq_list_lock should be held by the caller. 282 * try_then_request_governor() - Try to find the governor and request the 284 * @name: name of the governor 287 * if is not found. This can happen when both drivers (the governor driver 290 * governor's pointer or an error pointer. 294 struct devfreq_governor *governor; in try_then_request_governor() local 304 governor = find_devfreq_governor(name); in try_then_request_governor() [all …]
|
H A D | governor.h | 3 * governor.h - internal header for devfreq governors. 31 * Definition of the governor feature flags 33 * : This governor is never changeable to other governors. 35 * : The devfreq won't schedule the work for this governor. 41 * Definition of governor attribute flags except for common sysfs attributes 61 * This is auto-populated by the governor. 76 * struct devfreq_governor - Devfreq policy governor 78 * @name: Governor's name 79 * @attrs: Governor's sysfs attribute flags 80 * @flags: Governor's feature flags [all …]
|
H A D | Kconfig | 8 in order to let the governor provided to devfreq choose an 11 Each device may have its own governor and policy. Devfreq can 38 similar as ONDEMAND governor of CPUFREQ does. A device with 41 values to the governor with data field at devfreq_add_device(). 47 This governor always returns UINT_MAX as frequency so that 55 This governor always returns 0 as frequency so that 63 This governor returns the user configured frequency if there 65 Otherwise, the governor does not change the frequency 72 device. This governor does not change the frequency by itself 73 through sysfs entries. The passive governor recommends that
|
/linux/tools/testing/selftests/cpufreq/ |
H A D | governor.sh | 19 # Find governor's directory path 20 # $1: policy, $2: governor 43 printf "Governor backup done for $1: $CUR_GOV\n" 47 printf "Governor frequency backup done for $1: $CUR_FREQ\n" 58 printf "Governor restored for $1 to $CUR_GOV\n" 62 printf "Governor frequency restored for $1: $CUR_FREQ\n" 69 # $1: policy, $2: governor 76 # $1: cpu, $2: governor 84 # $1: cpu, $2: governor 89 # check if governor is available [all …]
|
H A D | module.sh | 15 source governor.sh 106 # find governor name based on governor module name 107 # $1: governor module name 125 # $1: governor string, $2: governor module, $3: policy 133 # switch to new governor 137 # try removing module, it should fail as governor is used 141 printf "WARN: rmmod $2 succeeded even if governor is used\n" 147 # switch back to old governor 153 # Insert cpufreq governor module and perform basic tests 154 # $1: cpufreq-governor module to insert [all …]
|
H A D | main.sh | 6 source governor.sh 29 modtest: test driver or governor modules. Only to be used with -d or -g options, 30 sptest1: Simple governor switch to produce lockdep. 31 sptest2: Concurrent governor switch to produce lockdep. 32 sptest3: Governor races, shuffle between governors quickly. 35 [-g <governor's module name: only with \"-t modtest>\"] 94 g) # --governor-mod-name (Name of the governor module) 138 ktap_exit_fail_msg "No driver or governor module passed with -d or -g"
|
/linux/Documentation/admin-guide/pm/ |
H A D | cpufreq.rst | 60 As a rule, each governor implements one, possibly parametrized, scaling 81 to bypass the governor layer and implement their own performance scaling 148 scaling governor to it (to begin with, that is the default scaling governor 151 the governor's ``->init()`` callback which is expected to initialize all of the 153 a governor ``sysfs`` interface to it. Next, the governor is started by 166 on the configuration and capabilities of the scaling driver and the governor. 171 to use the scaling governor previously used with the policy that became 172 "inactive" (and is re-initialized now) instead of the default governor. 177 necessary to restart the scaling governor so that it can take the new online CPU 178 into account. That is achieved by invoking the governor's ``->stop`` and [all …]
|
H A D | cpuidle.rst | 118 calls into a code module referred to as the *governor* that belongs to the CPU 122 processor hardware to enter the idle state selected by the governor. 124 The role of the governor is to find an idle state most suitable for the 134 taken into account by the governor, the *target residency* and the (worst-case) 147 There are two types of information that can influence the governor's decisions. 148 First of all, the governor knows the time until the closest timer event. That 154 when that may happen. The governor can only see how much time the CPU actually 158 governor uses that information depends on what algorithm is implemented by it 159 and that is the primary reason for having more than one governor in the 166 governors can be read from the :file:`available_governors`, and the governor [all …]
|
/linux/tools/power/cpupower/bench/ |
H A D | README-BENCH | 9 - Identify average reaction time of a governor to CPU load changes 10 - (Stress) Testing whether a cpufreq low level driver or governor works 14 processes with a higher prio than the governor's kernel thread 27 cpufreq-bench helps to test the condition of a given cpufreq governor. 28 For that purpose, it compares the performance governor to a configured 57 governor. 58 Then the above test runs are processed using the performance governor 59 and the governor to test. The time the calculation really needed 60 with the dynamic freq scaling governor is compared with the time needed 64 Example of expected results with ondemand governor: [all …]
|
H A D | system.c | 37 * sets the cpufreq governor 39 * @param governor cpufreq governor name 40 * @param cpu cpu for which the governor should be set 46 int set_cpufreq_governor(char *governor, unsigned int cpu) in set_cpufreq_governor() argument 49 dprintf("set %s as cpufreq governor\n", governor); in set_cpufreq_governor() 57 if (cpufreq_modify_policy_governor(cpu, governor) != 0) { in set_cpufreq_governor() 59 fprintf(stderr, "error: unable to set %s governor\n", governor); in set_cpufreq_governor()
|
H A D | benchmark.c | 71 * governor and compares the used time for same calculations done 72 * with the configured powersave governor 101 /* set the cpufreq governor to "performance" which disables in start_benchmark() 124 /* do some sleep/load cycles with the performance governor */ in start_benchmark() 144 /* set the powersave governor which activates P-State switching in start_benchmark() 146 if (set_cpufreq_governor(config->governor, config->cpu) != 0) in start_benchmark() 150 * powersave governor */ in start_benchmark()
|
/linux/drivers/thermal/ |
H A D | thermal_core.c | 44 * Governor section: set of functions to handle thermal governors 47 * the thermal core and by the thermal governor code. 65 * bind_previous_governor() - bind the previous governor of the thermal zone 67 * @failed_gov_name: the name of the governor that failed to register 69 * Register the previous governor of the thermal zone after a new 70 * governor has failed to be bound. 75 if (tz->governor && tz->governor->bind_to_tz) { in bind_previous_governor() 76 if (tz->governor->bind_to_tz(tz)) { in bind_previous_governor() 78 …"governor %s failed to bind and the previous one (%s) failed to bind again, thermal zone %s has no… in bind_previous_governor() 79 failed_gov_name, tz->governor->name, tz->type); in bind_previous_governor() [all …]
|
H A D | Kconfig | 26 trip point crossed, cooling device update or governor 96 prompt "Default Thermal governor" 99 This option sets which thermal governor shall be loaded at 106 Use the step_wise governor as default. This throttles the 113 Use the fair_share governor as default. This throttles the 121 The Userspace governor allows to get trip point crossed 131 system and device power allocation. This governor can only 138 Use the bang_bang governor as default. This throttles the 145 bool "Fair-share thermal governor" 147 Enable this to manage platform thermals using fair-share governor. [all …]
|
H A D | thermal_core.h | 38 * struct thermal_governor - structure that holds thermal governor information 39 * @name: name of the governor 41 * returns 0, the governor is bound to the thermal zone, 43 * @unbind_from_tz: callback called when a governor is unbound from a 94 * @governor: pointer to the governor for this thermal zone 95 * @governor_data: private pointer for governor data 129 struct thermal_governor *governor; member 155 /* Default Thermal Governor */ 179 #define THERMAL_GOVERNOR_DECLARE(name) THERMAL_TABLE_ENTRY(governor, name)
|
/linux/Documentation/driver-api/thermal/ |
H A D | power_allocator.rst | 2 Power allocator governor tunables 8 The governor works optimally with the following two passive trip points: 10 1. "switch on" trip point: temperature above which the governor 15 "switch on" trip point. This the target temperature the governor 22 The power allocator governor implements a 104 thermal governor allows the configuration of two proportional term 115 value of `k_pu` will result in the governor granting very high power 168 the exact power that the governor requests. When the temperature 183 Cooling devices controlled by this governor must supply the additional 202 allocator governor to calculate how much power to give to each cooling [all …]
|
/linux/include/linux/ |
H A D | devfreq.h | 18 /* DEVFREQ governor name */ 54 * A device and a specific governor may have their 56 * this is governor-specific, a governor using this 146 * @governor: method how to choose frequency based on the usage. 156 * @data: devfreq driver pass to governors, governor should not change it. 174 * Note that when a governor accesses entries in struct devfreq in its 176 * devfreq_governor, the governor should protect its access with the 177 * struct mutex lock in struct devfreq. A governor may use this mutex 186 const struct devfreq_governor *governor; member 285 * the governor may consider slowing the frequency down. [all …]
|
/linux/Documentation/driver-api/pm/ |
H A D | cpuidle.rst | 43 A CPU idle time (``CPUIdle``) governor is a bundle of policy code invoked when 52 The governor itself is represented by a struct cpuidle_governor object 57 For the governor to be available at all, that object needs to be registered 60 add the governor to the global list of available governors and, if it is the 63 governor currently in use, or the name of the new governor was passed to the 64 kernel as the value of the ``cpuidle.governor=`` command line parameter, the new 65 governor will be used from that point on (there can be only one ``CPUIdle`` 66 governor in use at a time). Also, user space can choose the ``CPUIdle`` 67 governor to use at run time via ``sysfs``. 80 The role of this callback is to prepare the governor for handling the [all …]
|
/linux/drivers/cpuidle/ |
H A D | governor.c | 2 * governor.c - governor support 26 * cpuidle_find_governor - finds a governor of the specified name 43 * cpuidle_switch_governor - changes the governor 44 * @gov: the new target governor 70 pr_info("cpuidle: using governor %s\n", gov->name); in cpuidle_switch_governor() 76 * cpuidle_register_governor - registers a governor 77 * @gov: the governor
|
H A D | Kconfig | 22 bool "Ladder governor (for periodic timer tick)" 25 bool "Menu governor (for tickless system)" 28 bool "Timer events oriented (TEO) governor (for tickless systems)" 30 This governor implements a simplified idle state selection method 37 bool "Haltpoll governor (for virtualized systems)" 40 This governor implements haltpoll idle state selection, to be
|
/linux/tools/power/cpupower/utils/ |
H A D | cpufreq-set.c | 26 {"governor", required_argument, NULL, 'g'}, 36 "- Is the governor you requested available and modprobed?\n" in print_error() 38 "- Trying to set a specific frequency, but userspace governor is not available,\n" in print_error() 40 " or because the userspace governor isn't loaded?\n")); in print_error() 160 if (!new_pol->governor) in do_new_policy() 161 new_pol->governor = cur_pol->governor; in do_new_policy() 186 else if (new_pol->governor) in do_one_cpu() 188 new_pol->governor); in do_one_cpu() 209 .governor = NULL, in cmd_freq_set() 257 if (new_pol.governor) in cmd_freq_set() [all …]
|
/linux/tools/power/cpupower/lib/ |
H A D | cpufreq.c | 244 policy->governor = sysfs_cpufreq_get_one_string(cpu, SCALING_GOVERNOR); in cpufreq_get_policy() 245 if (!policy->governor) { in cpufreq_get_policy() 252 free(policy->governor); in cpufreq_get_policy() 262 if ((!policy) || (!policy->governor)) in cpufreq_put_policy() 265 free(policy->governor); in cpufreq_put_policy() 266 policy->governor = NULL; in cpufreq_put_policy() 303 current->governor = malloc(i - pos + 1); in cpufreq_get_available_governors() 304 if (!current->governor) in cpufreq_get_available_governors() 307 memcpy(current->governor, linebuf + pos, i - pos); in cpufreq_get_available_governors() 308 current->governor[i - pos] = '\0'; in cpufreq_get_available_governors() [all …]
|
/linux/tools/power/cpupower/man/ |
H A D | cpupower-frequency-set.1 | 15 new minimum CPU frequency the governor may select. 18 new maximum CPU frequency the governor may select. 20 \fB\-g\fR \fB\-\-governor\fR <GOV> 21 new cpufreq governor. 24 specific frequency to be set. Requires userspace governor to be available and loaded.
|
H A D | cpupower-idle-set.1 | 35 Depending on the used cpuidle governor, implementing the kernel policy 40 governor is always available, if CONFIG_CPU_IDLE is selected, the 41 menu governor additionally requires CONFIG_NO_HZ. 44 implementation of a particular governor. In the ladder governor, for
|