On Tue, Oct 06, 2020 at 04:09:26PM +0200, Juri Lelli wrote:

> > --- a/kernel/sched/deadline.c
> > +++ b/kernel/sched/deadline.c
> > @@ -2001,7 +2001,7 @@ static int find_later_rq(struct task_str
> >     if (this_cpu != -1)
> >             return this_cpu;
> >  
> > -   cpu = cpumask_any(later_mask);
> > +   cpu = cpumask_any_distribute(later_mask);
> >     if (cpu < nr_cpu_ids)
> >             return cpu;
> 
> Think we can use cpumask_any_and_distribute() with later_mask for
> deadline as well inside the for_each_domain loop as you do for rt below.

Ah, indeed.. I missed it because it is cpumask_first, instead of
cpumask_any as with rt.

I folded the below.

---
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1981,8 +1981,8 @@ static int find_later_rq(struct task_str
                                return this_cpu;
                        }
 
-                       best_cpu = cpumask_first_and(later_mask,
-                                                       sched_domain_span(sd));
+                       best_cpu = cpumask_any_and_distribute(later_mask,
+                                                             
sched_domain_span(sd));
                        /*
                         * Last chance: if a CPU being in both later_mask
                         * and current sd span is valid, that becomes our

Reply via email to