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

From: Mike Galbraith
Date: Mon May 31 2010 - 09:56:58 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/