Messages in this thread | | | Subject | Re: commit e9e9250b: sync wakeup bustage when waker is an RT task | From | Mike Galbraith <> | Date | Mon, 31 May 2010 15:56:49 +0200 |
| |
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
| |