Re: [RFC PATCH v2 00/17] Core scheduling v2

From: Ingo Molnar
Date: Fri Apr 26 2019 - 05:51:30 EST



* Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote:

> > Interesting.
> >
> > Here too I'm wondering whether the scheduler could do something to
> > improve the saturated case: which *is* an important workload, as kernel
> > hackers tend to over-load their systems a bit when building kernel, to
> > make sure the system is at least 100% utilized. ;-)
> >
>
> Every so often I try but I never managed to settle on a heuristic that
> helped this case without breaking others. The biggest hurdle is that
> typically things are better if migrations are low but it's hard to do
> that in a way that does not also stack tasks on the same CPUs
> prematurely.

So instead of using a heuristic (which are fragile and most of them are
also annoyingly non-deterministic and increase overall noise and make
measurements harder) I'd suggest using SCHED_BATCH just as a hardcore
toggle to maximize for CPU-bound throughput.

It's not used very much, but the kernel build could use it by default
(i.e. we could use a "chrt -b" call within the main Makefile), so it
would be the perfect guinea pig and wouldn't affect anything else.

I.e. we could use SCHED_BATCH to maximize kernel build speed, with no no
regard to latency (within SCHED_BATCH workloads). I suspect this will
also maximize bandwidth of a lot of other real-world, highly parallel but
interacting processing workloads.

[ I'd even be willing to rename it to SCHED_KBUILD, internally. ;-) ]

Thanks,

Ingo