• Peter Zijlstra's avatar
    sched: Add TASK_WAKING · e9c84311
    Peter Zijlstra authored
    We're going to want to drop rq->lock in try_to_wake_up() for a
    longer period of time, however we also want to deal with concurrent
    waking of the same task, which is currently handled by holding
    rq->lock.
    
    So introduce a new TASK state, namely TASK_WAKING, which indicates
    someone is already waking the task (other wakers will fail p->state
    & state).
    
    We also keep preemption disabled over the whole ttwu().
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    e9c84311
sched.c 266 KB