sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

Message ID 20230522115605.1238227-1-linmiaohe@huawei.com
State New
Headers
Series sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and() |

Commit Message

Miaohe Lin May 22, 2023, 11:56 a.m. UTC
  cpumask_weight_and() can be used to count of bits both in rd->span and
cpu_active_mask. No functional change intended.

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
---
 kernel/sched/deadline.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
  

Comments

Mukesh Ojha May 22, 2023, 10:47 a.m. UTC | #1
On 5/22/2023 5:26 PM, Miaohe Lin wrote:
> cpumask_weight_and() can be used to count of bits both in rd->span and
> cpu_active_mask. No functional change intended.
> 
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
>   kernel/sched/deadline.c | 11 +----------
>   1 file changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index 166c3e6eae61..fe983ed7bb12 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -110,20 +110,11 @@ static inline struct dl_bw *dl_bw_of(int i)
>   static inline int dl_bw_cpus(int i)
>   {
>   	struct root_domain *rd = cpu_rq(i)->rd;
> -	int cpus;
>   
>   	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
>   			 "sched RCU must be held");
>   
> -	if (cpumask_subset(rd->span, cpu_active_mask))
> -		return cpumask_weight(rd->span);
> -
> -	cpus = 0;
> -
> -	for_each_cpu_and(i, rd->span, cpu_active_mask)
> -		cpus++;
> -
> -	return cpus;
> +	return cpumask_weight_and(rd->span, cpu_active_mask);
>   }


Acked-by: Mukesh Ojha <quic_mojha@quicinc.com>

-- Mukesh

>   
>   static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)
  
Dietmar Eggemann May 22, 2023, 4:58 p.m. UTC | #2
On 22/05/2023 13:56, Miaohe Lin wrote:
> cpumask_weight_and() can be used to count of bits both in rd->span and
> cpu_active_mask. No functional change intended.
> 
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
>  kernel/sched/deadline.c | 11 +----------
>  1 file changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index 166c3e6eae61..fe983ed7bb12 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -110,20 +110,11 @@ static inline struct dl_bw *dl_bw_of(int i)
>  static inline int dl_bw_cpus(int i)
>  {
>  	struct root_domain *rd = cpu_rq(i)->rd;
> -	int cpus;
>  
>  	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
>  			 "sched RCU must be held");
>  
> -	if (cpumask_subset(rd->span, cpu_active_mask))
> -		return cpumask_weight(rd->span);
> -
> -	cpus = 0;
> -
> -	for_each_cpu_and(i, rd->span, cpu_active_mask)
> -		cpus++;
> -
> -	return cpus;
> +	return cpumask_weight_and(rd->span, cpu_active_mask);
>  }
>  
>  static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)

Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
  
Valentin Schneider May 24, 2023, 10:59 a.m. UTC | #3
On 22/05/23 19:56, Miaohe Lin wrote:
> cpumask_weight_and() can be used to count of bits both in rd->span and
> cpu_active_mask. No functional change intended.
>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>

Reviewed-by: Valentin Schneider <vschneid@redhat.com>
  
Daniel Bristot de Oliveira May 25, 2023, 9:56 a.m. UTC | #4
On 5/22/23 13:56, Miaohe Lin wrote:
> cpumask_weight_and() can be used to count of bits both in rd->span and
> cpu_active_mask. No functional change intended.
> 
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>

Reviewed-by: Daniel Bristot de Oliveira <bristot@kernel.org>

Thanks,
-- Daniel
  
Miaohe Lin June 13, 2023, 12:19 p.m. UTC | #5
On 2023/5/22 19:56, Miaohe Lin wrote:
> cpumask_weight_and() can be used to count of bits both in rd->span and
> cpu_active_mask. No functional change intended.
> 
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>

friendly ping... :)

> ---
>  kernel/sched/deadline.c | 11 +----------
>  1 file changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index 166c3e6eae61..fe983ed7bb12 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -110,20 +110,11 @@ static inline struct dl_bw *dl_bw_of(int i)
>  static inline int dl_bw_cpus(int i)
>  {
>  	struct root_domain *rd = cpu_rq(i)->rd;
> -	int cpus;
>  
>  	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
>  			 "sched RCU must be held");
>  
> -	if (cpumask_subset(rd->span, cpu_active_mask))
> -		return cpumask_weight(rd->span);
> -
> -	cpus = 0;
> -
> -	for_each_cpu_and(i, rd->span, cpu_active_mask)
> -		cpus++;
> -
> -	return cpus;
> +	return cpumask_weight_and(rd->span, cpu_active_mask);
>  }
>  
>  static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)
>
  
Phil Auld June 13, 2023, 1:16 p.m. UTC | #6
On Tue, Jun 13, 2023 at 08:19:22PM +0800 Miaohe Lin wrote:
> On 2023/5/22 19:56, Miaohe Lin wrote:
> > cpumask_weight_and() can be used to count of bits both in rd->span and
> > cpu_active_mask. No functional change intended.
> > 
> > Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> 
> friendly ping... :)

This looks reasonable, and better, to me.

Reviewed-by: Phil Auld <pauld@redhat.com>

> 
> > ---
> >  kernel/sched/deadline.c | 11 +----------
> >  1 file changed, 1 insertion(+), 10 deletions(-)
> > 
> > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> > index 166c3e6eae61..fe983ed7bb12 100644
> > --- a/kernel/sched/deadline.c
> > +++ b/kernel/sched/deadline.c
> > @@ -110,20 +110,11 @@ static inline struct dl_bw *dl_bw_of(int i)
> >  static inline int dl_bw_cpus(int i)
> >  {
> >  	struct root_domain *rd = cpu_rq(i)->rd;
> > -	int cpus;
> >  
> >  	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
> >  			 "sched RCU must be held");
> >  
> > -	if (cpumask_subset(rd->span, cpu_active_mask))
> > -		return cpumask_weight(rd->span);
> > -
> > -	cpus = 0;
> > -
> > -	for_each_cpu_and(i, rd->span, cpu_active_mask)
> > -		cpus++;
> > -
> > -	return cpus;
> > +	return cpumask_weight_and(rd->span, cpu_active_mask);
> >  }
> >  
> >  static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)
> > 
> 

--
  
Miaohe Lin June 14, 2023, 1:43 a.m. UTC | #7
On 2023/6/13 21:16, Phil Auld wrote:
> On Tue, Jun 13, 2023 at 08:19:22PM +0800 Miaohe Lin wrote:
>> On 2023/5/22 19:56, Miaohe Lin wrote:
>>> cpumask_weight_and() can be used to count of bits both in rd->span and
>>> cpu_active_mask. No functional change intended.
>>>
>>> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
>>
>> friendly ping... :)
> 
> This looks reasonable, and better, to me.
> 
> Reviewed-by: Phil Auld <pauld@redhat.com>

Many thanks for all of your reviews. :)

> 
>>
>>> ---
>>>  kernel/sched/deadline.c | 11 +----------
>>>  1 file changed, 1 insertion(+), 10 deletions(-)
>>>
>>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>>> index 166c3e6eae61..fe983ed7bb12 100644
>>> --- a/kernel/sched/deadline.c
>>> +++ b/kernel/sched/deadline.c
>>> @@ -110,20 +110,11 @@ static inline struct dl_bw *dl_bw_of(int i)
>>>  static inline int dl_bw_cpus(int i)
>>>  {
>>>  	struct root_domain *rd = cpu_rq(i)->rd;
>>> -	int cpus;
>>>  
>>>  	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
>>>  			 "sched RCU must be held");
>>>  
>>> -	if (cpumask_subset(rd->span, cpu_active_mask))
>>> -		return cpumask_weight(rd->span);
>>> -
>>> -	cpus = 0;
>>> -
>>> -	for_each_cpu_and(i, rd->span, cpu_active_mask)
>>> -		cpus++;
>>> -
>>> -	return cpus;
>>> +	return cpumask_weight_and(rd->span, cpu_active_mask);
>>>  }
>>>  
>>>  static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)
>>>
>>
>
  

Patch

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index 166c3e6eae61..fe983ed7bb12 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -110,20 +110,11 @@  static inline struct dl_bw *dl_bw_of(int i)
 static inline int dl_bw_cpus(int i)
 {
 	struct root_domain *rd = cpu_rq(i)->rd;
-	int cpus;
 
 	RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held(),
 			 "sched RCU must be held");
 
-	if (cpumask_subset(rd->span, cpu_active_mask))
-		return cpumask_weight(rd->span);
-
-	cpus = 0;
-
-	for_each_cpu_and(i, rd->span, cpu_active_mask)
-		cpus++;
-
-	return cpus;
+	return cpumask_weight_and(rd->span, cpu_active_mask);
 }
 
 static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)