cpupower: Move print_speed function into misc helper
The print_speed can be as a common function, and expose it into misc helper header. Then it can be used on other helper files as well. Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
bf9801baa8
commit
35fdf42d90
@ -84,43 +84,6 @@ static void proc_cpufreq_output(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int no_rounding;
|
static int no_rounding;
|
||||||
static void print_speed(unsigned long speed)
|
|
||||||
{
|
|
||||||
unsigned long tmp;
|
|
||||||
|
|
||||||
if (no_rounding) {
|
|
||||||
if (speed > 1000000)
|
|
||||||
printf("%u.%06u GHz", ((unsigned int) speed/1000000),
|
|
||||||
((unsigned int) speed%1000000));
|
|
||||||
else if (speed > 1000)
|
|
||||||
printf("%u.%03u MHz", ((unsigned int) speed/1000),
|
|
||||||
(unsigned int) (speed%1000));
|
|
||||||
else
|
|
||||||
printf("%lu kHz", speed);
|
|
||||||
} else {
|
|
||||||
if (speed > 1000000) {
|
|
||||||
tmp = speed%10000;
|
|
||||||
if (tmp >= 5000)
|
|
||||||
speed += 10000;
|
|
||||||
printf("%u.%02u GHz", ((unsigned int) speed/1000000),
|
|
||||||
((unsigned int) (speed%1000000)/10000));
|
|
||||||
} else if (speed > 100000) {
|
|
||||||
tmp = speed%1000;
|
|
||||||
if (tmp >= 500)
|
|
||||||
speed += 1000;
|
|
||||||
printf("%u MHz", ((unsigned int) speed/1000));
|
|
||||||
} else if (speed > 1000) {
|
|
||||||
tmp = speed%100;
|
|
||||||
if (tmp >= 50)
|
|
||||||
speed += 100;
|
|
||||||
printf("%u.%01u MHz", ((unsigned int) speed/1000),
|
|
||||||
((unsigned int) (speed%1000)/100));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void print_duration(unsigned long duration)
|
static void print_duration(unsigned long duration)
|
||||||
{
|
{
|
||||||
unsigned long tmp;
|
unsigned long tmp;
|
||||||
@ -254,11 +217,11 @@ static int get_boost_mode(unsigned int cpu)
|
|||||||
if (freqs) {
|
if (freqs) {
|
||||||
printf(_(" boost frequency steps: "));
|
printf(_(" boost frequency steps: "));
|
||||||
while (freqs->next) {
|
while (freqs->next) {
|
||||||
print_speed(freqs->frequency);
|
print_speed(freqs->frequency, no_rounding);
|
||||||
printf(", ");
|
printf(", ");
|
||||||
freqs = freqs->next;
|
freqs = freqs->next;
|
||||||
}
|
}
|
||||||
print_speed(freqs->frequency);
|
print_speed(freqs->frequency, no_rounding);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
cpufreq_put_available_frequencies(freqs);
|
cpufreq_put_available_frequencies(freqs);
|
||||||
}
|
}
|
||||||
@ -277,7 +240,7 @@ static int get_freq_kernel(unsigned int cpu, unsigned int human)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (human) {
|
if (human) {
|
||||||
print_speed(freq);
|
print_speed(freq, no_rounding);
|
||||||
} else
|
} else
|
||||||
printf("%lu", freq);
|
printf("%lu", freq);
|
||||||
printf(_(" (asserted by call to kernel)\n"));
|
printf(_(" (asserted by call to kernel)\n"));
|
||||||
@ -296,7 +259,7 @@ static int get_freq_hardware(unsigned int cpu, unsigned int human)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (human) {
|
if (human) {
|
||||||
print_speed(freq);
|
print_speed(freq, no_rounding);
|
||||||
} else
|
} else
|
||||||
printf("%lu", freq);
|
printf("%lu", freq);
|
||||||
printf(_(" (asserted by call to hardware)\n"));
|
printf(_(" (asserted by call to hardware)\n"));
|
||||||
@ -316,9 +279,9 @@ static int get_hardware_limits(unsigned int cpu, unsigned int human)
|
|||||||
|
|
||||||
if (human) {
|
if (human) {
|
||||||
printf(_(" hardware limits: "));
|
printf(_(" hardware limits: "));
|
||||||
print_speed(min);
|
print_speed(min, no_rounding);
|
||||||
printf(" - ");
|
printf(" - ");
|
||||||
print_speed(max);
|
print_speed(max, no_rounding);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
} else {
|
} else {
|
||||||
printf("%lu %lu\n", min, max);
|
printf("%lu %lu\n", min, max);
|
||||||
@ -350,9 +313,9 @@ static int get_policy(unsigned int cpu)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
printf(_(" current policy: frequency should be within "));
|
printf(_(" current policy: frequency should be within "));
|
||||||
print_speed(policy->min);
|
print_speed(policy->min, no_rounding);
|
||||||
printf(_(" and "));
|
printf(_(" and "));
|
||||||
print_speed(policy->max);
|
print_speed(policy->max, no_rounding);
|
||||||
|
|
||||||
printf(".\n ");
|
printf(".\n ");
|
||||||
printf(_("The governor \"%s\" may decide which speed to use\n"
|
printf(_("The governor \"%s\" may decide which speed to use\n"
|
||||||
@ -436,7 +399,7 @@ static int get_freq_stats(unsigned int cpu, unsigned int human)
|
|||||||
struct cpufreq_stats *stats = cpufreq_get_stats(cpu, &total_time);
|
struct cpufreq_stats *stats = cpufreq_get_stats(cpu, &total_time);
|
||||||
while (stats) {
|
while (stats) {
|
||||||
if (human) {
|
if (human) {
|
||||||
print_speed(stats->frequency);
|
print_speed(stats->frequency, no_rounding);
|
||||||
printf(":%.2f%%",
|
printf(":%.2f%%",
|
||||||
(100.0 * stats->time_in_state) / total_time);
|
(100.0 * stats->time_in_state) / total_time);
|
||||||
} else
|
} else
|
||||||
@ -486,11 +449,11 @@ static void debug_output_one(unsigned int cpu)
|
|||||||
if (freqs) {
|
if (freqs) {
|
||||||
printf(_(" available frequency steps: "));
|
printf(_(" available frequency steps: "));
|
||||||
while (freqs->next) {
|
while (freqs->next) {
|
||||||
print_speed(freqs->frequency);
|
print_speed(freqs->frequency, no_rounding);
|
||||||
printf(", ");
|
printf(", ");
|
||||||
freqs = freqs->next;
|
freqs = freqs->next;
|
||||||
}
|
}
|
||||||
print_speed(freqs->frequency);
|
print_speed(freqs->frequency, no_rounding);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
cpufreq_put_available_frequencies(freqs);
|
cpufreq_put_available_frequencies(freqs);
|
||||||
}
|
}
|
||||||
|
@ -200,5 +200,6 @@ extern struct bitmask *offline_cpus;
|
|||||||
void get_cpustate(void);
|
void get_cpustate(void);
|
||||||
void print_online_cpus(void);
|
void print_online_cpus(void);
|
||||||
void print_offline_cpus(void);
|
void print_offline_cpus(void);
|
||||||
|
void print_speed(unsigned long speed, int no_rounding);
|
||||||
|
|
||||||
#endif /* __CPUPOWERUTILS_HELPERS__ */
|
#endif /* __CPUPOWERUTILS_HELPERS__ */
|
||||||
|
@ -164,3 +164,43 @@ void print_offline_cpus(void)
|
|||||||
printf(_("cpupower set operation was not performed on them\n"));
|
printf(_("cpupower set operation was not performed on them\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* print_speed
|
||||||
|
*
|
||||||
|
* Print the exact CPU frequency with appropriate unit
|
||||||
|
*/
|
||||||
|
void print_speed(unsigned long speed, int no_rounding)
|
||||||
|
{
|
||||||
|
unsigned long tmp;
|
||||||
|
|
||||||
|
if (no_rounding) {
|
||||||
|
if (speed > 1000000)
|
||||||
|
printf("%u.%06u GHz", ((unsigned int)speed / 1000000),
|
||||||
|
((unsigned int)speed % 1000000));
|
||||||
|
else if (speed > 1000)
|
||||||
|
printf("%u.%03u MHz", ((unsigned int)speed / 1000),
|
||||||
|
(unsigned int)(speed % 1000));
|
||||||
|
else
|
||||||
|
printf("%lu kHz", speed);
|
||||||
|
} else {
|
||||||
|
if (speed > 1000000) {
|
||||||
|
tmp = speed % 10000;
|
||||||
|
if (tmp >= 5000)
|
||||||
|
speed += 10000;
|
||||||
|
printf("%u.%02u GHz", ((unsigned int)speed / 1000000),
|
||||||
|
((unsigned int)(speed % 1000000) / 10000));
|
||||||
|
} else if (speed > 100000) {
|
||||||
|
tmp = speed % 1000;
|
||||||
|
if (tmp >= 500)
|
||||||
|
speed += 1000;
|
||||||
|
printf("%u MHz", ((unsigned int)speed / 1000));
|
||||||
|
} else if (speed > 1000) {
|
||||||
|
tmp = speed % 100;
|
||||||
|
if (tmp >= 50)
|
||||||
|
speed += 100;
|
||||||
|
printf("%u.%01u MHz", ((unsigned int)speed / 1000),
|
||||||
|
((unsigned int)(speed % 1000) / 100));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user