On Fri, 25 Aug 2017 10:31:00 +0900 Byungchul Park <[email protected]> wrote:
> On Thu, Aug 24, 2017 at 09:55:14AM -0400, Steven Rostedt wrote: > > On Thu, 24 Aug 2017 10:06:03 +0900 > > Byungchul Park <[email protected]> wrote: > > > > > Hello Steven, > > > > > > Can I keep your reviewed-by with comments modified? > > > > Yes, but I have one nit. > > > > > > > @@ -1668,9 +1691,35 @@ static int find_lowest_rq(struct task_struct *task) > > > return this_cpu; > > > } > > > > > > - best_cpu = cpumask_first_and(lowest_mask, > > > - sched_domain_span(sd)); > > > + /* > > > + * If a cpu being in lowest_mask & current sd & > > > + * ~prefer sd is valid, that becomes our choice. > > > > I can't parse the above sentence. > > I might have simplified the comment too much. > > ~prefer means we want to exclude the domain span having SD_PREFER_SIBLING, > since they should be considered as fallback candidates. > > W/o ~prefer, a cpu in the domain might be chosen when we consider higher > domain than the domain having SD_PREFER_SIBLING, as the best cpu, not > fallback. That actually wasn't the hard part. It was the entire sentence that is very confusing. What is the definition of "is valid" in this context? Do you just mean "< nr_cpu_ids"? If that's the case you are also being redundant. Because if the "if" statement is true, then it will be valid. What about just saying something like: /* * If a cpu exists that is in the lowest_mask and the current sd span, * but not in the prefer sd span, then that becomes our choice. */ -- Steve

