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.

