diff mbox series

cpupower : frequency-set -r option misses the last cpu in related cpu list

Message ID 20190529093033.30068-1-huntbag@linux.vnet.ibm.com (mailing list archive)
State Accepted
Delegated to: Shuah Khan
Headers show
Series cpupower : frequency-set -r option misses the last cpu in related cpu list | expand

Commit Message

Abhishek Goel May 29, 2019, 9:30 a.m. UTC
To set frequency on specific cpus using cpupower, following syntax can
be used :
cpupower -c #i frequency-set -f #f -r

While setting frequency using cpupower frequency-set command, if we use
'-r' option, it is expected to set frequency for all cpus related to
cpu #i. But it is observed to be missing the last cpu in related cpu
list. This patch fixes the problem.

Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
---
 tools/power/cpupower/utils/cpufreq-set.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Gautham R Shenoy May 29, 2019, 12:12 p.m. UTC | #1
Hi Abhishek,

On Wed, May 29, 2019 at 3:02 PM Abhishek Goel
<huntbag@linux.vnet.ibm.com> wrote:
>
> To set frequency on specific cpus using cpupower, following syntax can
> be used :
> cpupower -c #i frequency-set -f #f -r
>
> While setting frequency using cpupower frequency-set command, if we use
> '-r' option, it is expected to set frequency for all cpus related to
> cpu #i. But it is observed to be missing the last cpu in related cpu
> list. This patch fixes the problem.
>
> Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
> ---
>  tools/power/cpupower/utils/cpufreq-set.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/tools/power/cpupower/utils/cpufreq-set.c b/tools/power/cpupower/utils/cpufreq-set.c
> index 1eef0aed6..08a405593 100644
> --- a/tools/power/cpupower/utils/cpufreq-set.c
> +++ b/tools/power/cpupower/utils/cpufreq-set.c
> @@ -306,6 +306,8 @@ int cmd_freq_set(int argc, char **argv)
>                                 bitmask_setbit(cpus_chosen, cpus->cpu);
>                                 cpus = cpus->next;
>                         }
> +                       /* Set the last cpu in related cpus list */
> +                       bitmask_setbit(cpus_chosen, cpus->cpu);

Perhaps you could convert the while() loop to a do ..  while(). That
should will ensure
that we terminate the loop after setting the last valid CPU.


>                         cpufreq_put_related_cpus(cpus);
>                 }
>         }
> --
> 2.17.1
>
Thomas Renninger May 29, 2019, 2:21 p.m. UTC | #2
Hi,

On Wednesday, May 29, 2019 2:12:34 PM CEST Gautham R Shenoy wrote:
> Hi Abhishek,
> 
> On Wed, May 29, 2019 at 3:02 PM Abhishek Goel

...
 
> >                                 bitmask_setbit(cpus_chosen, cpus->cpu);
> >                                 cpus = cpus->next;
> >                         
> >                         }
> > 
> > +                       /* Set the last cpu in related cpus list */
> > +                       bitmask_setbit(cpus_chosen, cpus->cpu);
> 
> Perhaps you could convert the while() loop to a do ..  while(). That
> should will ensure
> that we terminate the loop after setting the last valid CPU.

It would do exactly the same, right?
IMHO it's not worth the extra hassle of resubmitting. Setting the last value 
outside a while loop is rather common.

I do not have a CPU with related cores at hand.
If you tested this it would be nice to see this pushed:

Reviewed-by: Thomas Renninger <trenn@suse.de>

Thanks!

   Thomas
Shuah June 4, 2019, 3:16 p.m. UTC | #3
On 5/29/19 8:21 AM, Thomas Renninger wrote:
> Hi,
> 
> On Wednesday, May 29, 2019 2:12:34 PM CEST Gautham R Shenoy wrote:
>> Hi Abhishek,
>>
>> On Wed, May 29, 2019 at 3:02 PM Abhishek Goel
> 
> ...
>   
>>>                                  bitmask_setbit(cpus_chosen, cpus->cpu);
>>>                                  cpus = cpus->next;
>>>                          
>>>                          }
>>>
>>> +                       /* Set the last cpu in related cpus list */
>>> +                       bitmask_setbit(cpus_chosen, cpus->cpu);
>>
>> Perhaps you could convert the while() loop to a do ..  while(). That
>> should will ensure
>> that we terminate the loop after setting the last valid CPU.
> 
> It would do exactly the same, right?
> IMHO it's not worth the extra hassle of resubmitting. Setting the last value
> outside a while loop is rather common.
> 
> I do not have a CPU with related cores at hand.
> If you tested this it would be nice to see this pushed:
> 
> Reviewed-by: Thomas Renninger <trenn@suse.de>
> 

Applied to 
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux.git/ 
cpupower branch.

thanks,
-- Shuah
diff mbox series

Patch

diff --git a/tools/power/cpupower/utils/cpufreq-set.c b/tools/power/cpupower/utils/cpufreq-set.c
index 1eef0aed6..08a405593 100644
--- a/tools/power/cpupower/utils/cpufreq-set.c
+++ b/tools/power/cpupower/utils/cpufreq-set.c
@@ -306,6 +306,8 @@  int cmd_freq_set(int argc, char **argv)
 				bitmask_setbit(cpus_chosen, cpus->cpu);
 				cpus = cpus->next;
 			}
+			/* Set the last cpu in related cpus list */
+			bitmask_setbit(cpus_chosen, cpus->cpu);
 			cpufreq_put_related_cpus(cpus);
 		}
 	}