mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-16 20:23:24 +07:00
[CPUFREQ][4/6] cpufreq_ondemand: Parameterize down differential
Use a parameter for down differential, instead of hardcoded 10%. Follow-on patch changes the down-differential dynamically, based on whether we are using idle micro-accounting or not. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Dave Jones <davej@redhat.com>
This commit is contained in:
parent
3430502d35
commit
e9d95bf7eb
@ -24,6 +24,7 @@
|
|||||||
* It helps to keep variable names smaller, simpler
|
* It helps to keep variable names smaller, simpler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define DEF_FREQUENCY_DOWN_DIFFERENTIAL (10)
|
||||||
#define DEF_FREQUENCY_UP_THRESHOLD (80)
|
#define DEF_FREQUENCY_UP_THRESHOLD (80)
|
||||||
#define MIN_FREQUENCY_UP_THRESHOLD (11)
|
#define MIN_FREQUENCY_UP_THRESHOLD (11)
|
||||||
#define MAX_FREQUENCY_UP_THRESHOLD (100)
|
#define MAX_FREQUENCY_UP_THRESHOLD (100)
|
||||||
@ -86,10 +87,12 @@ static struct workqueue_struct *kondemand_wq;
|
|||||||
static struct dbs_tuners {
|
static struct dbs_tuners {
|
||||||
unsigned int sampling_rate;
|
unsigned int sampling_rate;
|
||||||
unsigned int up_threshold;
|
unsigned int up_threshold;
|
||||||
|
unsigned int down_differential;
|
||||||
unsigned int ignore_nice;
|
unsigned int ignore_nice;
|
||||||
unsigned int powersave_bias;
|
unsigned int powersave_bias;
|
||||||
} dbs_tuners_ins = {
|
} dbs_tuners_ins = {
|
||||||
.up_threshold = DEF_FREQUENCY_UP_THRESHOLD,
|
.up_threshold = DEF_FREQUENCY_UP_THRESHOLD,
|
||||||
|
.down_differential = DEF_FREQUENCY_DOWN_DIFFERENTIAL,
|
||||||
.ignore_nice = 0,
|
.ignore_nice = 0,
|
||||||
.powersave_bias = 0,
|
.powersave_bias = 0,
|
||||||
};
|
};
|
||||||
@ -424,9 +427,13 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
|
|||||||
* can support the current CPU usage without triggering the up
|
* can support the current CPU usage without triggering the up
|
||||||
* policy. To be safe, we focus 10 points under the threshold.
|
* policy. To be safe, we focus 10 points under the threshold.
|
||||||
*/
|
*/
|
||||||
if (max_load_freq < (dbs_tuners_ins.up_threshold - 10) * policy->cur) {
|
if (max_load_freq <
|
||||||
|
(dbs_tuners_ins.up_threshold - dbs_tuners_ins.down_differential) *
|
||||||
|
policy->cur) {
|
||||||
unsigned int freq_next;
|
unsigned int freq_next;
|
||||||
freq_next = max_load_freq / (dbs_tuners_ins.up_threshold - 10);
|
freq_next = max_load_freq /
|
||||||
|
(dbs_tuners_ins.up_threshold -
|
||||||
|
dbs_tuners_ins.down_differential);
|
||||||
|
|
||||||
if (!dbs_tuners_ins.powersave_bias) {
|
if (!dbs_tuners_ins.powersave_bias) {
|
||||||
__cpufreq_driver_target(policy, freq_next,
|
__cpufreq_driver_target(policy, freq_next,
|
||||||
|
Loading…
Reference in New Issue
Block a user