On Fri, Mar 23, 2018 at 6:47 PM, Quentin Perret <quentin.per...@arm.com> wrote: > On Thursday 22 Mar 2018 at 13:19:03 (-0700), Joel Fernandes wrote: >> On Thu, Mar 22, 2018 at 11:06 AM, Patrick Bellasi >> <patrick.bell...@arm.com> wrote: > > [...] > >> >> > @@ -6555,6 +6613,14 @@ select_task_rq_fair(struct task_struct *p, int >> >> > prev_cpu, int sd_flag, int wake_f >> >> > break; >> >> > } >> >> > >> >> > + /* >> >> > + * Energy-aware task placement is performed on the >> >> > highest >> >> > + * non-overutilized domain spanning over cpu and >> >> > prev_cpu. >> >> > + */ >> >> > + if (want_energy && !sd_overutilized(tmp) && >> >> > + cpumask_test_cpu(prev_cpu, sched_domain_span(tmp))) >> >> >> >> Shouldn't you check for the SD_ASYM_CPUCAPACITY flag here for tmp level? >> > >> > ... and this then should be covered by the previous check in >> > wake_energy(), which sets want_energy. >> >> Right, but in a scenario which probably doesn't exist today where we >> have both SD_ASYM_CPUCAPACITY and !SD_ASYM_CPUCAPACITY domains in the >> hierarchy for which want_energy = 1, I was thinking if its more future >> proof to check it and not make assumptions... > > So we can definitely have cases where SD_ASYM_CPUCAPACITY is not set at all > sd levels. Today, on mobile systems, this flag is typically set only at DIE > level for big.LITTLE platforms, and not at MC level. > We enable EAS if we find _at least_ one domain that has this flag in the > hierarchy, just to make sure we don't enable EAS for symmetric platform. > It's just a way to check a property about the topology when EAS starts, not > really a way to actually select the sd at which we do scheduling at > runtime.
Yes Ok you're right we do have the ASYM flag set at some sd levels but not others at the moment. Sorry about the hasty comment. I understand what you're doing now, I am Ok with that. thanks, - Joel