From bd331dbb839d7ee8b2d8abeb89d4fd650db58a9d Mon Sep 17 00:00:00 2001 From: PA4WDH Date: Sat, 27 May 2023 10:47:05 +0200 Subject: Use CPU Transition Latency as checkdelay when setting new scaling_max_freq --- cputemp2maxfreq.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'cputemp2maxfreq.c') diff --git a/cputemp2maxfreq.c b/cputemp2maxfreq.c index 556e404..9600d13 100644 --- a/cputemp2maxfreq.c +++ b/cputemp2maxfreq.c @@ -85,15 +85,18 @@ int main(int argc,char **argv) cpudata.min_freq=sysfs_read_long_int("/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq"); cpudata.max_freq=sysfs_read_long_int("/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq"); cpudata.scale_max=sysfs_read_long_int("/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq"); + cpudata.transition_latency=sysfs_read_long_int("/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_transition_latency"); config.logger("CPU data:"); config.logger("Minimum frequency: %ld",cpudata.min_freq); config.logger("Maximum frequency: %ld",cpudata.max_freq); config.logger("Scaling maximum frequency: %ld",cpudata.scale_max); + config.logger("Transition Latency: %ld",cpudata.transition_latency); if ((cpudata.min_freqVALID_FREQ_MAX) || (cpudata.max_freqVALID_FREQ_MAX) || - (cpudata.scale_maxVALID_FREQ_MAX)) + (cpudata.scale_maxVALID_FREQ_MAX) || + (cpudata.transition_latencyVALID_TRANS_MAX)) { // If we have to fail now, there's not much we can do because we have no data config.logger("Invalid CPU data, exiting"); @@ -166,7 +169,7 @@ int main(int argc,char **argv) config.logger("Increase scaling_max_freq to %ld",newfreq); // Set new value and validate - if (cpufreq_set_long_int("scaling_max_freq",newfreq,100)<0) + if (cpufreq_set_long_int("scaling_max_freq",newfreq,cpudata.transition_latency)<0) { config.logger("Failed to set scaling_max_freq, exiting"); failsafe(1); @@ -189,7 +192,7 @@ int main(int argc,char **argv) config.logger("Decrease scaling_max_freq to %ld",newfreq); // Set new value and validate - if (cpufreq_set_long_int("scaling_max_freq",newfreq,100)<0) + if (cpufreq_set_long_int("scaling_max_freq",newfreq,cpudata.transition_latency)<0) { config.logger("Failed to set scaling_max_freq, exiting"); failsafe(1); -- cgit v1.2.3