Messages in this thread | | | Date | Thu, 30 Apr 2020 16:25:15 +0530 | From | Pavan Kondeti <> | Subject | Re: [PATCH v2 2/6] sched/deadline: Optimize dl_bw_cpus() |
| |
On Mon, Apr 27, 2020 at 10:37:05AM +0200, Dietmar Eggemann wrote: > Return the weight of the rd (root domain) span in case it is a subset > of the cpu_active_mask. > > Continue to compute the number of CPUs over rd span and cpu_active_mask > when in hotplug. > > Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com> > --- > kernel/sched/deadline.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 504d2f51b0d6..4ae22bfc37ae 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -54,10 +54,16 @@ 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 = 0; > + 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); > +
Looks good to me. This is a nice optimization.
> + cpus = 0; > + > for_each_cpu_and(i, rd->span, cpu_active_mask) > cpus++; > Do you know why this check is in place? Is it only to cover the case of cpuset_cpu_inactive()->dl_cpu_busy()?
Thanks, Pavan > -- > 2.17.1 >
-- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
| |