Re: [RFC PATCH v3 00/16] Core scheduling v3

From: Dario Faggioli
Date: Thu Aug 15 2019 - 12:09:32 EST


On Wed, 2019-08-07 at 10:10 -0700, Tim Chen wrote:
> On 8/7/19 1:58 AM, Dario Faggioli wrote:
>
> > Since I see that, in this thread, there are various patches being
> > proposed and discussed... should I rerun my benchmarks with them
> > applied? If yes, which ones? And is there, by any chance, one (or
> > maybe
> > more than one) updated git branch(es)?
> >
> Hi Dario,
>
Hi Tim!

> Having an extra set of eyes are certainly welcomed.
> I'll give my 2 cents on the issues with v3.
>
Ok, and thanks a lot for this.

> 1) Unfairness between the sibling threads
> -----------------------------------------
> One sibling thread could be suppressing and force idling
> the sibling thread over proportionally. Resulting in
> the force idled CPU not getting run and stall tasks on
> suppressed CPU.
>
>
> [...]
>
> 2) Not rescheduling forced idled CPU
> ------------------------------------
> The forced idled CPU does not get a chance to re-schedule
> itself, and will stall for a long time even though it
> has eligible tasks to run.
>
> [...]
>
> 3) Load balancing between CPU cores
> -----------------------------------
> Say if one CPU core's sibling threads get forced idled
> a lot as it has mostly incompatible tasks between the siblings,
> moving the incompatible load to other cores and pulling
> compatible load to the core could help CPU utilization.
>
> So just considering the load of a task is not enough during
> load balancing, task compatibility also needs to be considered.
> Peter has put in mechanisms to balance compatible tasks between
> CPU thread siblings, but not across cores.
>
> [...]
>
Ok. Yes, as said, I've been trying to follow the thread, but thanks a
lot again for this summary.

As said, I'm about to have numbers for the repo/branch I mentioned.

I was considering whether to also re-run the benchmarking campaign with
some of the patches that floated around within this thread. Now, thanks
to your summary, I have an even clearer picture about which patch does
what, and that is indeed very useful.

I'll see about putting something together. I'm thinking of picking:

https://lore.kernel.org/lkml/b7a83fcb-5c34-9794-5688-55c52697fd84@xxxxxxxxxxxxxxx/
https://lore.kernel.org/lkml/20190725143344.GD992@aaronlu/

And maybe even (part of):
20190810141556.GA73644@aaronlu/#t">https://lore.kernel.org/lkml/20190810141556.GA73644@aaronlu/#t

If anyone has ideas or suggestions about whether or not this choice
makes sense, feel free to share. :-)

Also, I only have another week before leaving, so let's see what I
manage to actually run, and then share here, by then.

Thanks and Regards
--
Dario Faggioli, Ph.D
http://about.me/dario.faggioli
Virtualization Software Engineer
SUSE Labs, SUSE https://www.suse.com/
-------------------------------------------------------------------
<<This happens because _I_ choose it to happen!>> (Raistlin Majere)

Attachment: signature.asc
Description: This is a digitally signed message part