Re: [PATCH] sched/topology: Disable sched_asym_cpucapacity on domain destruction

From: Valentin Schneider
Date: Tue Oct 15 2019 - 05:47:54 EST


On 15/10/2019 10:22, Dietmar Eggemann wrote:
> I still don't understand the benefit of the counter approach here.
> sched_smt_present counts the number of cores with SMT. So in case you
> have 2 SMT cores with 2 HW threads and you CPU hp out one CPU, you still
> have sched_smt_present, although 1 CPU doesn't have a SMT thread sibling
> anymore.
>
> Valentin's patch makes sure that sched_asym_cpucapacity is correctly set
> when the sd hierarchy is rebuild due to CPU hp. Including the unlikely
> scenario that an asymmetric CPU capacity system (based on DT's
> capacity-dmips-mhz values) turns normal SMT because of the max frequency
> values of the CPUs involved.
>
> Systems with a mix of asymmetric and symmetric CPU capacity rd's have to
> live with the fact that wake_cap and misfit handling is enabled for
> them. This should be the case already today.
>

Good point, that's what I slowly came to realize this morning.

> There should be no SD_ASYM_CPUCAPACITY flag on the sd's of the CPUs of
> the symmetric CPU capacity rd's. I.e. update_top_cache_domain() should
> set sd_asym_cpucapacity=NULL for those CPUs.
>
> So as a rule we could say even if a static key enables a code path, a
> derefenced sd still has to be checked against NULL.
>

Yeah, I think there's no escaping it. Let me see if I can do something
sensible regarding the static key.