Re: [PATCH] sched/deadline: Make find_later_rq() choose a closer cpu in topology

From: Byungchul Park
Date: Tue Mar 21 2017 - 03:53:23 EST


On Tue, Mar 21, 2017 at 03:29:57PM +0900, Byungchul Park wrote:
> On Tue, Mar 21, 2017 at 10:38:20AM +0900, Byungchul Park wrote:
> > When cpudl_find() returns any among free_cpus, the cpu might not be
> > closer than others, considering sched domain. For example:
> >
> > this_cpu: 15
> > free_cpus: 0, 1,..., 14 (== later_mask)
> > best_cpu: 0
> >
> > topology:
> >
> > 0 --+
> > +--+
> > 1 --+ |
> > +-- ... --+
> > 2 --+ | |
> > +--+ |
> > 3 --+ |
> >
> > ... ...
> >
> > 12 --+ |
> > +--+ |
> > 13 --+ | |
> > +-- ... -+
> > 14 --+ |
> > +--+
> > 15 --+
> >
> > In this case, it would be best to select 14 since it's a free cpu and
> > closest to 15(this_cpu). However, currently the code select 0(best_cpu)
> > even though that's just any among free_cpus. Fix it.
>
> Hello,
>
> I think it would be better to split this into two patches:
>
> 1. Clean up cpudl_find() at cpudeadline.c.
> 2. Make it choose a closer cpu in topology.
>
> I will do it if you agree with my original purpose.

Hello,

I tried to take care of the case of later_mask = NULL, which was missed
in the 1st spin, but it seems to be not that meaningful. I will give up
clean-up patch.

I am sorry for making you confused.