Re: [PATCH 0/4] sched/fair: Avoid unnecessary migrations within SMT domains

From: Peter Zijlstra
Date: Tue Oct 18 2022 - 05:40:31 EST


On Mon, Oct 17, 2022 at 07:35:27PM -0700, Ricardo Neri wrote:
> On Thu, Aug 25, 2022 at 03:55:25PM -0700, Ricardo Neri wrote:
> > Intel processors that support Intel Turbo Boost Max 3.0 use asym_packing
> > to assign higher priorities to CPUs with higher maximum frequencies. It
> > artificially assigns, however, a lower priority to the higher-numbered
> > SMT siblings to ensure that they are used last.
> >
> > This results in unnecessary task migrations within the SMT domains.
> >
> > On processors with a mixture of higher-frequency SMT cores and lower-
> > frequency non-SMT cores (such as Intel hybrid processors), a lower-
> > priority CPU pulls tasks from the higher-priority cores if more than one
> > SMT sibling is busy.
> >
> > Do not use different priorities for each SMT sibling. Instead, tweak the
> > asym_packing load balancer to recognize SMT cores with more than one
> > busy sibling and let lower-priority CPUs pull tasks.
> >
> > Removing these artificial priorities avoids superfluous migrations and
> > lets lower-priority cores inspect all SMT siblings for the busiest queue.
>
> Hello. I'd like to know if there are any comments on these patches. This
> patchset is a requisite for the IPC classes of tasks patchset [1].

Urgh.. so I'm not liking this, afaict you're sprinkling SMT2
assumptions.

Why can't we make arch_asym_cpu_priority() depend on CPU state? Doesn't
it then magically work?