Re: [PATCH 3/3] RT: CPU priority management

From: Gregory Haskins
Date: Thu Oct 25 2007 - 13:58:22 EST


On Thu, 2007-10-25 at 13:36 -0400, Steven Rostedt wrote:


>
> Yep, -rt2 (and -rt3) are both horrible too. That's why I'm working on a
> sched-domain version now to handle that.

Excellent. I'm not 100% sure I've got the "mingo lingo" ;) down enough
to know if sched_domains are the best fit, but I think in concept that
makes a lot of sense (as we have discussed on IRC). I am thinking that
we want to treat the rt.highest_prio/cpupri stuff to the "cpuset"
mentality, just like Ingo suggested for the rto masks. If sched_domains
are those beasts, then great.

>
> >
> > The fact is, you can't maintain a global dynamic policy without bouncing
> > cachelines, period. But hopefully we can minimize it, and I just want
> > to see the fastest code here.
>
> Well, we need a balance between cacheline hits, and where to pull from.
> As performance goes, the two are inverse perportional. The secret is to
> find a nice middle ground.

Fully agree.

>
> >
> > >
> > > I still don't see the benefit from the cpupri code.
> >
> > I still owe you timing data, but at this juncture I think I can beat
> > linear (especially as we start throwing in big-iron) ;) I originally
> > got involved in this scheduler rework from observations of poor scaling
> > on our 8/16-ways, so I want it to scale as much as you ;) If this alg
> > doesn't pan out, that's cool. But I think it will in the end. Linear
> > algs in the fast path just make my skin crawl. Perhaps it will still be
> > the best design in the end, but I am not giving up that easy until I
> > prove it to myself.
>
> It's only linear in respect to the size of the domain or cpus allowed.

True, but as of now its a singular domain ;) And even so, I still think
a cpupri like algorithm can be potentially useful even if we utilize
finer grained domains. That is, unless the membership becomes
sufficiently small (maybe < 4 CPUs?) where the lower-overhead linear
search will just always trounce the larger overhead of cpupri_set().

> Any
> 8/16 way boxes worried about cacheline bouncing need to reign in on the
> cpus allowed mask. Otherwise, we would simply have bouncing anyway with
> the tasks themselves.

Agreed. Looking forward to reviewing your work here. :)

Regards,
-Greg

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