2023-05-22 04:12:27

by Miaohe Lin

[permalink] [raw]
Subject: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>
---
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)
--
2.27.0



2023-05-22 11:11:21

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()



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 <[email protected]>
> ---
> 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 <[email protected]>

-- Mukesh

>
> static inline unsigned long __dl_bw_capacity(const struct cpumask *mask)

2023-05-22 17:22:40

by Dietmar Eggemann

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>
> ---
> 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 <[email protected]>

2023-05-24 11:22:33

by Valentin Schneider

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>

Reviewed-by: Valentin Schneider <[email protected]>


Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>

Reviewed-by: Daniel Bristot de Oliveira <[email protected]>

Thanks,
-- Daniel


2023-06-13 12:31:02

by Miaohe Lin

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>

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)
>


2023-06-13 13:33:59

by Phil Auld

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>
>
> friendly ping... :)

This looks reasonable, and better, to me.

Reviewed-by: Phil Auld <[email protected]>

>
> > ---
> > 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)
> >
>

--


2023-06-14 01:57:27

by Miaohe Lin

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: simplify dl_bw_cpus() using cpumask_weight_and()

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 <[email protected]>
>>
>> friendly ping... :)
>
> This looks reasonable, and better, to me.
>
> Reviewed-by: Phil Auld <[email protected]>

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)
>>>
>>
>