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

From: Aaron Lu
Date: Thu Aug 15 2019 - 22:33:26 EST


On Thu, Aug 15, 2019 at 06:09:28PM +0200, Dario Faggioli wrote:
> 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. :-)

Makes sense to me.
patch3 in the last link is slightly better than the one in the 2nd link,
so just use that instead.

Thanks,
Aaron

> 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)
>