Messages in this thread | | | Date | Fri, 26 Apr 2019 11:51:23 +0200 | From | Ingo Molnar <> | Subject | Re: [RFC PATCH v2 00/17] Core scheduling v2 |
| |
* Mel Gorman <mgorman@techsingularity.net> 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
| |