lkml.org 
[lkml]   [2011]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 22/22] sched: Remove TASK_WAKING
    On 03/02/11 09:38, Peter Zijlstra wrote:
    > With the new locking TASK_WAKING has become obsolete, remove it.
    >
    > Suggested-by: Oleg Nesterov <oleg@redhat.com>
    > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    > LKML-Reference: <new-submission>
    > ---

    < snip >

    > Index: linux-2.6/kernel/sched.c
    > ===================================================================
    > --- linux-2.6.orig/kernel/sched.c
    > +++ linux-2.6/kernel/sched.c
    > @@ -2175,7 +2175,7 @@ void set_task_cpu(struct task_struct *p,
    > * We should never call set_task_cpu() on a blocked task,
    > * ttwu() will sort out the placement.
    > */
    > - WARN_ON_ONCE(p->state != TASK_RUNNING && p->state != TASK_WAKING &&
    > + WARN_ON_ONCE(p->state != TASK_RUNNING &&
    > !(task_thread_info(p)->preempt_count & PREEMPT_ACTIVE));
    >
    > #ifdef CONFIG_LOCKDEP
    > @@ -2613,7 +2613,7 @@ try_to_wake_up(struct task_struct *p, un
    > smp_rmb();
    >
    > p->sched_contributes_to_load = !!task_contributes_to_load(p);
    > - p->state = TASK_WAKING;
    > + p->state = TASK_RUNNING;
    >
    > if (p->sched_class->task_waking)
    > p->sched_class->task_waking(p);

    No harm if the coded as in the patch, but an alternate suggestion
    if you like it:

    The only reason left for "p->state = TASK_RUNNING;" here is when
    cpu is remote. If cpu is not remote then p->state will be set by:

    ttwu_queue()
    ttwu_do_activate()
    ttwu_do_wakeup()
    p->state = TASK_RUNNING;

    It would be more clear that setting state to TASK_RUNNING is protecting
    the process until it has been removed from the wake_list by
    sched_ttwu_pending() by setting p->state = TASK_RUNNING in ttwu_queue_remote().



    \
     
     \ /
      Last update: 2011-03-11 03:07    [W:0.044 / U:0.076 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site