Messages in this thread Patch in this message | | | Subject | Re: [PATCH 04/21] sched: Change the ttwu success details | From | Peter Zijlstra <> | Date | Wed, 13 Apr 2011 12:48:23 +0200 |
| |
On Wed, 2011-04-13 at 11:23 +0200, Peter Zijlstra wrote: > and workqueue wakeups, and I doubt extra wakeups will cause lockups.
Damn assumptions ;-)
Index: linux-2.6/kernel/sched.c =================================================================== --- linux-2.6.orig/kernel/sched.c +++ linux-2.6/kernel/sched.c @@ -2447,7 +2447,7 @@ static inline void ttwu_post_activation( } #endif /* if a worker is waking up, notify workqueue */ - if ((p->flags & PF_WQ_WORKER) && success) + if (p->flags & PF_WQ_WORKER) wq_worker_waking_up(p, cpu_of(rq)); } Appears to be sufficient to cause the lockup, so somehow the whole workqueue stuff relies on the fact that waking a TASK_(UN)INTERRUPTIBLE task that hasn't been dequeued yet isn't a wakeup.
Tejun any quick clues as to why and how to cure this?
/me goes read that stuff
| |