Re: [PATCH v6 1/3] perf/core: use rb trees for pinned/flexible groups
From: Andi Kleen
Date: Mon Aug 07 2017 - 13:40:01 EST
On Mon, Aug 07, 2017 at 06:57:11PM +0200, Peter Zijlstra wrote:
> On Mon, Aug 07, 2017 at 07:27:30PM +0300, Alexey Budankov wrote:
> > On 07.08.2017 18:55, Peter Zijlstra wrote:
>
> > > In the extreme, if you construct your program such that you'll never get
> > > hit by the tick (this used to be a popular measure to hide yourself from
> > > time accounting)
> >
> > Well, some weird thing for me. Never run longer than one tick?
> > I could imaging some I/O bound code that would fast serve some short
> > messages, all the other time waiting for incoming requests.
> > Not sure if CPU events monitoring is helpful in this case.
>
> Like I said, in extreme. Typically its less weird.
>
> Another example is scheduling a very constrained counter/group along
> with a bunch of simple events such that the group will only succeed to
> schedule when its the first. In this case it will get only 1/nr_events
> time with RR, as opposed to the other/simple events that will get
> nr_counters/nr_events time.
>
> By making it runtime based, the constrained thing will more often be
> head of list and acquire equal total runtime to the other events.
I'm not sure Alexey's patch kit will be able to solve every possible
problem with the event scheduler. Trying to fix everything at
the same time is usually difficult.
It would seem better to mainly focus on the scaling problem for now
(which is essentially a show stopper bug for one platform)
and then tackle other problems later once that is solved.
-Andi