Re: [PATCH] sched: Introduce scaled capacity awareness in enqueue

From: Peter Zijlstra
Date: Mon Jun 12 2017 - 11:36:48 EST


On Mon, Jun 05, 2017 at 11:08:38AM -0700, Rohit Jain wrote:

> > Why does determining if a CPU's capacity is scaled down need to involve
> > global data? AFAICT its a purely CPU local affair.
>
> The global array is used to determine the threshold capacity, so
> that any CPU which lies below decides that a CPU is 'running low' on
> available capacity. This threshold can also be statically defined to
> be a fixed fraction, but having dynamic calculation to determine the
> threshold works for all benchmarks.

Firstly, you should have explained that. Secondly it still is very much
an incomplete explanation. Again why does that matter? What scenario is
important for what workload?

Thirdly, did you consider heterogeneous setups, where CPUs can have
different capacities?

And clearly you did not consider the 4K CPUs case, 4K cpus poking at a
global data structure will completely come apart.

> Did you mean we should use a static cutoff and decide whether a CPU
> should be treated low on capacity and skip it during idle CPU search?

Yes. Why would that not suffice? You've not even begun to explain why
you need all the additional complexity.

And if the next patch doesn't explain things, I'll just ignore it
entirely.