Re: [patch] scheduler fixes, 2.5.32-BK

Ingo Molnar (mingo@elte.hu)
Fri, 30 Aug 2002 19:05:00 +0200 (CEST)


On Fri, 30 Aug 2002, Linus Torvalds wrote:

> > actually, i think the race does not exist. up() is perfectly safely done
> > on the on-stack semaphore, because both the wake_up() done by __up() and
> > the __down() path takes the waitqueue spinlock, so i cannot see where
> > the up() touches the semaphore after the down()-ed task has been woken
> > up.
>
> It touches the _spinlock_.

it touches the waitqueue spinlock - and the __down() path [ie. the process
that gets woken up, which has the semaphore on the stack] takes the
spinlock after waking up. Ie. there's guaranteed synchronization, the
semaphore will not be 'unused' before the __down() path takes the spinlock
- ie. after the __up() path releases the spinlock. What am i missing?

Ingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/