diff mbox

[RESEND] cpupower: Fix no-rounding MHz frequency output

Message ID 20171023115632.27998-1-prarit@redhat.com (mailing list archive)
State Accepted
Delegated to: Shuah Khan
Headers show

Commit Message

Prarit Bhargava Oct. 23, 2017, 11:56 a.m. UTC
Sent about a year ago ...

P.

---8<---

'cpupower frequency-info -ln' returns kHz values on systems with MHz range
minimum CPU frequency range.  For example, on a 800MHz to 4.20GHz system
the command returns

hardware limits: 800000 MHz - 4.200000 GHz

The value of speed passed into print_speed is in kHz, so divide speed by
1000 in the MHz else-if section to get MHz.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Renninger <trenn@suse.com>
Cc: Stafford Horne <shorne@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
---
 tools/power/cpupower/utils/cpufreq-info.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Stafford Horne Oct. 23, 2017, 12:35 p.m. UTC | #1
On Mon, Oct 23, 2017 at 07:56:32AM -0400, Prarit Bhargava wrote:
> Sent about a year ago ...
> 
> P.
> 
> ---8<---
> 
> 'cpupower frequency-info -ln' returns kHz values on systems with MHz range
> minimum CPU frequency range.  For example, on a 800MHz to 4.20GHz system
> the command returns
> 
> hardware limits: 800000 MHz - 4.200000 GHz
> 
> The value of speed passed into print_speed is in kHz, so divide speed by
> 1000 in the MHz else-if section to get MHz.
> 
> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> Cc: Thomas Renninger <trenn@suse.com>
> Cc: Stafford Horne <shorne@gmail.com>
> Cc: Shuah Khan <shuah@kernel.org>
> ---
>  tools/power/cpupower/utils/cpufreq-info.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/power/cpupower/utils/cpufreq-info.c b/tools/power/cpupower/utils/cpufreq-info.c
> index 3e701f0e9c14..fe7c25147b3a 100644
> --- a/tools/power/cpupower/utils/cpufreq-info.c
> +++ b/tools/power/cpupower/utils/cpufreq-info.c
> @@ -94,7 +94,7 @@ static void print_speed(unsigned long speed)
>  			printf("%u.%06u GHz", ((unsigned int) speed/1000000),
>  				((unsigned int) speed%1000000));
>  		else if (speed > 100000)
> -			printf("%u MHz", (unsigned int) speed);
> +			printf("%u MHz", (unsigned int) speed/1000);

This looks ok to me, but can't we just remove this condition and depend on the
condition with the decimal point below?

-Stafford

>  		else if (speed > 1000)
>  			printf("%u.%03u MHz", ((unsigned int) speed/1000),
>  				(unsigned int) (speed%1000));
> -- 
> 2.15.0.rc0.39.g2f0e14e64
>
Prarit Bhargava Oct. 25, 2017, 1:41 p.m. UTC | #2
On 10/23/2017 08:35 AM, Stafford Horne wrote:
> On Mon, Oct 23, 2017 at 07:56:32AM -0400, Prarit Bhargava wrote:
>> Sent about a year ago ...
>>
>> P.
>>
>> ---8<---
>>
>> 'cpupower frequency-info -ln' returns kHz values on systems with MHz range
>> minimum CPU frequency range.  For example, on a 800MHz to 4.20GHz system
>> the command returns
>>
>> hardware limits: 800000 MHz - 4.200000 GHz
>>
>> The value of speed passed into print_speed is in kHz, so divide speed by
>> 1000 in the MHz else-if section to get MHz.
>>
>> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
>> Cc: Thomas Renninger <trenn@suse.com>
>> Cc: Stafford Horne <shorne@gmail.com>
>> Cc: Shuah Khan <shuah@kernel.org>
>> ---
>>  tools/power/cpupower/utils/cpufreq-info.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/power/cpupower/utils/cpufreq-info.c b/tools/power/cpupower/utils/cpufreq-info.c
>> index 3e701f0e9c14..fe7c25147b3a 100644
>> --- a/tools/power/cpupower/utils/cpufreq-info.c
>> +++ b/tools/power/cpupower/utils/cpufreq-info.c
>> @@ -94,7 +94,7 @@ static void print_speed(unsigned long speed)
>>  			printf("%u.%06u GHz", ((unsigned int) speed/1000000),
>>  				((unsigned int) speed%1000000));
>>  		else if (speed > 100000)
>> -			printf("%u MHz", (unsigned int) speed);
>> +			printf("%u MHz", (unsigned int) speed/1000);
> 
> This looks ok to me, but can't we just remove this condition and depend on the
> condition with the decimal point below?
> 
> -Stafford
> 
>>  		else if (speed > 1000)
>>  			printf("%u.%03u MHz", ((unsigned int) speed/1000),
>>  				(unsigned int) (speed%1000));

Yeah we can.  I think I made a cut-and-paste error when I originally did this
code.  I'll submit a v2 to clean that up.

P.


>> -- 
>> 2.15.0.rc0.39.g2f0e14e64
>>
diff mbox

Patch

diff --git a/tools/power/cpupower/utils/cpufreq-info.c b/tools/power/cpupower/utils/cpufreq-info.c
index 3e701f0e9c14..fe7c25147b3a 100644
--- a/tools/power/cpupower/utils/cpufreq-info.c
+++ b/tools/power/cpupower/utils/cpufreq-info.c
@@ -94,7 +94,7 @@  static void print_speed(unsigned long speed)
 			printf("%u.%06u GHz", ((unsigned int) speed/1000000),
 				((unsigned int) speed%1000000));
 		else if (speed > 100000)
-			printf("%u MHz", (unsigned int) speed);
+			printf("%u MHz", (unsigned int) speed/1000);
 		else if (speed > 1000)
 			printf("%u.%03u MHz", ((unsigned int) speed/1000),
 				(unsigned int) (speed%1000));