Messages in this thread | | | Subject | Re: [BUG] How to get real-time priority using idle priority | From | Peter Zijlstra <> | Date | Thu, 15 Jan 2009 12:41:26 +0100 |
| |
On Thu, 2009-01-15 at 12:37 +0100, Mike Galbraith wrote: > On Thu, 2009-01-15 at 11:30 +0100, Mike Galbraith wrote: > > On Thu, 2009-01-15 at 11:14 +0100, Peter Zijlstra wrote: > > > > > > Which leads me to suggest the following > > > > > > --- > > > diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c > > > index 8e1352c..f2d2d94 100644 > > > --- a/kernel/sched_fair.c > > > +++ b/kernel/sched_fair.c > > > @@ -283,7 +283,7 @@ static void update_min_vruntime(struct cfs_rq > > > *cfs_rq) > > > struct sched_entity, > > > run_node); > > > > > > - if (vruntime == cfs_rq->min_vruntime) > > > + if (!cfs_rq->curr) > > > vruntime = se->vruntime; > > > else > > > vruntime = min_vruntime(vruntime, se->vruntime); > > > > Aha. Yeah, I'll re-test with that instead. > > Works a treat.
*cheer* lets get this merged asap, and CC -stable as well.
> > > The below can be split into 3 patches: > > > > > > - the idle weight change (do we really need that? why?) > > > > I saw idle tasks slamming extremely far. I'll verify, less is more. > > time advanced in 100ms > weight=2 > 64765.988352 > 67012.881408 > 88501.412352 > > weight=3 > 35496.181411 > 34130.971298 > 35497.411573 > > Measured from an RT shell doing.. > while sleep .1; do cat /proc/sched_debug >> /debug; done > ...for a pinned chew. Not necessarily gnats-arse accurate, but good > enough to see the margin of error is pretty high with weight=2. > > Your call.
Right, 3 does look more stable, ok lets go with that.
Thanks Mike!
| |