2003-02-12 13:35:15

by Todd Inglett

[permalink] [raw]
Subject: sched_init prematurely enables interrupts

I think this bit is prematurely enabling interrupts in sched_init:

======== kernel/sched.c 1.1..1.156 ========
D 1.156 03/02/09 21:32:34-08:00 [email protected] 179 178
32/24/2466
P kernel/sched.c
C Make "try_to_wake_up()" care about the state of the process woken up.
C
C This simplifies "default_wake_function()", and makes it possible for
C signal handling to wake up only stopped tasks without races.
C
C It also makes it impossible to wake up already running processes, which
C means that the early boot sequence has to use the (much more correct)
C "wake_up_forked_process()" to put the initial task on the runqueues.

The problem is that wake_up_forked_process() does an rq_unlock(rq) which
is a spin_unlock_irq.

-todd


2003-02-12 15:52:05

by Robert Love

[permalink] [raw]
Subject: Re: sched_init prematurely enables interrupts

On Wed, 2003-02-12 at 08:44, Todd Inglett wrote:

> The problem is that wake_up_forked_process() does an rq_unlock(rq) which
> is a spin_unlock_irq.

I believe this is fixed in Linus's bitkeeper.

Robert Love