On Thu, 22 Jun 2017, Mike Galbraith wrote: > On Thu, 2017-06-22 at 18:34 +0200, Sebastian Andrzej Siewior wrote: > > On 2017-06-20 09:45:06 [+0200], Mike Galbraith wrote: > > > See ! and ? > > > > See see. > > What about this: > > I'll give it a go, likely during the weekend. > > I moved 4.11-rt today (also repros nicely) due to ftrace annoying me. > After yet more staring at ever more huge traces (opposite of goal;), > then taking a break to stare at source again, I decided that the dual > wake_q business should die.. and the stall died with it. The dual wake_q business is the semantically correct seperation. The evils of 'sleeping spinlocks' require to preserve the task state accross the lock sleep and act upon the real wakeup (not the lock wakeup) proper. The TASK_ALL wakeup of lock sleepers was hiding that non seperation of these two except for the resulting wreckage of ptrace, which we simply ignored for a long time because .... Now that we figure out that TASK_ALL is wrong we exposed the convolution of competing lock wakeups and regular wakeups. Seperating wake_q for those is the only sane solution. Thanks, tglx