[v2] cpupower : Handle set and info subcommands correctly
diff mbox series

Message ID 20190913080712.26383-1-huntbag@linux.vnet.ibm.com
State Accepted
Delegated to: Shuah Khan
Headers show
Series
  • [v2] cpupower : Handle set and info subcommands correctly
Related show

Commit Message

Abhishek Sept. 13, 2019, 8:07 a.m. UTC
Cpupower tool has set and info options which are being used only by
x86 machines. This patch removes support for these two subcommands
from generic cpupower utility. Thus, these two subcommands will now be
available only for intel.
This removes the ambiguous error message while using set option in case
of using non-intel systems.

Without this patch on a non-intel box:

root@ubuntu:~# cpupower info
System does not support Intel's performance bias setting

root@ubuntu:~# cpupower set -b 10
Error setting perf-bias value on CPU

With this patch on a non-intel box:

root@ubuntu:~# cpupower info
Supported commands are:
        frequency-info
        frequency-set
        idle-info
        idle-set
        monitor
        help

Same result for set subcommand.

This patch does not affect results on a intel box.

Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
Acked-by: Thomas Renninger <trenn@suse.de>
---

changes from v1:
	Instead of bailing out early in set and info commands, in V2, we
	are cutting out support for these two commands for non-intel
	systems.

 tools/power/cpupower/utils/cpupower.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

shuah Oct. 3, 2019, 2:38 p.m. UTC | #1
On 9/13/19 2:07 AM, Abhishek Goel wrote:
> Cpupower tool has set and info options which are being used only by
> x86 machines. This patch removes support for these two subcommands
> from generic cpupower utility. Thus, these two subcommands will now be
> available only for intel.
> This removes the ambiguous error message while using set option in case
> of using non-intel systems.
> 
> Without this patch on a non-intel box:
> 
> root@ubuntu:~# cpupower info
> System does not support Intel's performance bias setting
> 
> root@ubuntu:~# cpupower set -b 10
> Error setting perf-bias value on CPU
> 
> With this patch on a non-intel box:
> 
> root@ubuntu:~# cpupower info
> Supported commands are:
>          frequency-info
>          frequency-set
>          idle-info
>          idle-set
>          monitor
>          help
> 
> Same result for set subcommand.
> 
> This patch does not affect results on a intel box.
> 
> Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
> Acked-by: Thomas Renninger <trenn@suse.de>
> ---
> 
> changes from v1:
> 	Instead of bailing out early in set and info commands, in V2, we
> 	are cutting out support for these two commands for non-intel
> 	systems.

thanks. I will get this in for 5.4-rc3 veru likely. Definitely in 5.4

-- Shuah
shuah Oct. 3, 2019, 10:15 p.m. UTC | #2
Hi Abhishek,

On 10/3/19 8:38 AM, shuah wrote:
> On 9/13/19 2:07 AM, Abhishek Goel wrote:
>> Cpupower tool has set and info options which are being used only by
>> x86 machines. This patch removes support for these two subcommands
>> from generic cpupower utility. Thus, these two subcommands will now be
>> available only for intel.
>> This removes the ambiguous error message while using set option in case
>> of using non-intel systems.
>>
>> Without this patch on a non-intel box:
>>
>> root@ubuntu:~# cpupower info
>> System does not support Intel's performance bias setting
>>
>> root@ubuntu:~# cpupower set -b 10
>> Error setting perf-bias value on CPU
>>
>> With this patch on a non-intel box:
>>
>> root@ubuntu:~# cpupower info
>> Supported commands are:
>>          frequency-info
>>          frequency-set
>>          idle-info
>>          idle-set
>>          monitor
>>          help
>>
>> Same result for set subcommand.
>>
>> This patch does not affect results on a intel box.
>>
>> Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
>> Acked-by: Thomas Renninger <trenn@suse.de>
>> ---
>>
>> changes from v1:
>>     Instead of bailing out early in set and info commands, in V2, we
>>     are cutting out support for these two commands for non-intel
>>     systems.
> 
> thanks. I will get this in for 5.4-rc3 veru likely. Definitely in 5.4
> 

Okay I almost applied this and decided it needs improvements.

I don't like using #if defined(__x86_64__) || defined(__i386__)

tools/power/cpupower/utils/cpupower.c main() already does this
dynamically using uname(). Please use the same logic do this,
instead of adding compile time code.

thanks,
-- Shuah
Abhishek Oct. 14, 2019, 9:38 a.m. UTC | #3
Hi Shuah,


On 10/04/2019 03:45 AM, shuah wrote:
> Hi Abhishek,
>
> On 10/3/19 8:38 AM, shuah wrote:
>> On 9/13/19 2:07 AM, Abhishek Goel wrote:
>>> Cpupower tool has set and info options which are being used only by
>>> x86 machines. This patch removes support for these two subcommands
>>> from generic cpupower utility. Thus, these two subcommands will now be
>>> available only for intel.
>>> This removes the ambiguous error message while using set option in case
>>> of using non-intel systems.
>>>
>>> Without this patch on a non-intel box:
>>>
>>> root@ubuntu:~# cpupower info
>>> System does not support Intel's performance bias setting
>>>
>>> root@ubuntu:~# cpupower set -b 10
>>> Error setting perf-bias value on CPU
>>>
>>> With this patch on a non-intel box:
>>>
>>> root@ubuntu:~# cpupower info
>>> Supported commands are:
>>>          frequency-info
>>>          frequency-set
>>>          idle-info
>>>          idle-set
>>>          monitor
>>>          help
>>>
>>> Same result for set subcommand.
>>>
>>> This patch does not affect results on a intel box.
>>>
>>> Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
>>> Acked-by: Thomas Renninger <trenn@suse.de>
>>> ---
>>>
>>> changes from v1:
>>>     Instead of bailing out early in set and info commands, in V2, we
>>>     are cutting out support for these two commands for non-intel
>>>     systems.
>>
>> thanks. I will get this in for 5.4-rc3 veru likely. Definitely in 5.4
>>
>
> Okay I almost applied this and decided it needs improvements.
>
> I don't like using #if defined(__x86_64__) || defined(__i386__)
>
> tools/power/cpupower/utils/cpupower.c main() already does this
> dynamically using uname(). Please use the same logic do this,
> instead of adding compile time code.
>
> thanks,
> -- Shuah

Do you want the decision to be taken in cpupower-set and cpupower-info
file as was done in v1 but using uname() by identifying the architecture
there itself?

Thanks,
--Abhishek
shuah Oct. 14, 2019, 3:02 p.m. UTC | #4
On 10/14/19 3:38 AM, Abhishek wrote:
> Hi Shuah,
> 
> 
> On 10/04/2019 03:45 AM, shuah wrote:
>> Hi Abhishek,
>>
>> On 10/3/19 8:38 AM, shuah wrote:
>>> On 9/13/19 2:07 AM, Abhishek Goel wrote:
>>>> Cpupower tool has set and info options which are being used only by
>>>> x86 machines. This patch removes support for these two subcommands
>>>> from generic cpupower utility. Thus, these two subcommands will now be
>>>> available only for intel.
>>>> This removes the ambiguous error message while using set option in case
>>>> of using non-intel systems.
>>>>
>>>> Without this patch on a non-intel box:
>>>>
>>>> root@ubuntu:~# cpupower info
>>>> System does not support Intel's performance bias setting
>>>>
>>>> root@ubuntu:~# cpupower set -b 10
>>>> Error setting perf-bias value on CPU
>>>>
>>>> With this patch on a non-intel box:
>>>>
>>>> root@ubuntu:~# cpupower info
>>>> Supported commands are:
>>>>          frequency-info
>>>>          frequency-set
>>>>          idle-info
>>>>          idle-set
>>>>          monitor
>>>>          help
>>>>
>>>> Same result for set subcommand.
>>>>
>>>> This patch does not affect results on a intel box.
>>>>
>>>> Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
>>>> Acked-by: Thomas Renninger <trenn@suse.de>
>>>> ---
>>>>
>>>> changes from v1:
>>>>     Instead of bailing out early in set and info commands, in V2, we
>>>>     are cutting out support for these two commands for non-intel
>>>>     systems.
>>>
>>> thanks. I will get this in for 5.4-rc3 veru likely. Definitely in 5.4
>>>
>>
>> Okay I almost applied this and decided it needs improvements.
>>
>> I don't like using #if defined(__x86_64__) || defined(__i386__)
>>
>> tools/power/cpupower/utils/cpupower.c main() already does this
>> dynamically using uname(). Please use the same logic do this,
>> instead of adding compile time code.
>>
>> thanks,
>> -- Shuah
> 
> Do you want the decision to be taken in cpupower-set and cpupower-info
> file as was done in v1 but using uname() by identifying the architecture
> there itself?
> 

As I recall my objection to the v1 was that it is making the call very
early and bails out. Ideally, I would like to see the change as part
of set/info handling and then print out appropriate message.

thanks,
-- Shuah

Patch
diff mbox series

diff --git a/tools/power/cpupower/utils/cpupower.c b/tools/power/cpupower/utils/cpupower.c
index 8e3d08042825..babb9ab3afb1 100644
--- a/tools/power/cpupower/utils/cpupower.c
+++ b/tools/power/cpupower/utils/cpupower.c
@@ -52,8 +52,10 @@  static struct cmd_struct commands[] = {
 	{ "frequency-set",	cmd_freq_set,	1	},
 	{ "idle-info",		cmd_idle_info,	0	},
 	{ "idle-set",		cmd_idle_set,	1	},
+#if defined(__x86_64__) || defined(__i386__)
 	{ "set",		cmd_set,	1	},
 	{ "info",		cmd_info,	0	},
+#endif
 	{ "monitor",		cmd_monitor,	0	},
 	{ "help",		cmd_help,	0	},
 	/*	{ "bench",	cmd_bench,	1	}, */