Re: schedule_timeout() called with state TASK_RUNNING from fs/select.c

From: Robert P. J. Day
Date: Tue Jul 10 2007 - 03:52:49 EST


On Sun, 8 Jul 2007, Oleg Nesterov wrote:

> Robert P. J. Day wrote:
> >
> > as i understand it, schedule_timeout() should always be called with
> > a current->state of TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE, no?
>
> No.
>
> Yes, it is pointless to call schedule() if it is known that ->state ==
> TASK_RUNNING, but sometimes the task doesn't know its state when it
> calls schedule/schedule_timeout, the state could be changed by
> try_to_wake_up().
>
> See wait_event_timeout() as an example.

fair enough. i already knew that, technically, it wasn't an error to
call schedule_timeout() with state == TASK_RUNNING. i was just
following up on something out of love's kernel book, and i got curious
as to whether the above ever happened. now i know.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/