Re: commit e9e9250b: sync wakeup bustage when waker is an RT task

Mike Galbraith
2010-05-31T13:56:55Z

On Mon, 2010-05-31 at 13:56 +0200, Peter Zijlstra wrote:
> On Sun, 2010-05-16 at 09:21 +0200, Mike Galbraith wrote:
> > sched: RT waker sync wakeup bugfix
> >
> > An RT waker's weight is not on the runqueue, but we try to subrtact it anyway
> > in the sync wakeup case, sending this_load negative. This leads to affine
> > wakeup failure in cases where it should succeed. This was found while testing
> > an PREEMPT_RT kernel with lmbench's lat_udp. In a PREEMPT_RT kernel, softirq
> > threads act as a ~proxy for the !RT buddy. Approximate !PREEMPT_RT sync wakeup
> > behavior by looking at the buddy instead, and subtracting the maximum task weight
> > that will not send this_load negative.
>
>
> Does the below work?

Had to make a dinky adjustment for x86-tip-rt33, but yeah, the horrid
latencies are gone. (hm, skinnier than expected too)

-Mike