Messages in this thread | | | Date | Mon, 11 Sep 2000 22:26:46 -0300 (BRST) | From | Rik van Riel <> | Subject | Re: [patch]2.4.0-test6 "spinlock" preemption patch |
| |
On Tue, 12 Sep 2000, Andrea Arcangeli wrote: > On Wed, 6 Sep 2000, George Anzinger wrote: > > >The times a kernel is not preemptable under this patch are: > > > >While handling interrupts. > >While doing "bottom half" processing. > >While holding a spinlock, writelock or readlock. > > > >At all other times the algorithm allows preemption. > > So it can deadlock if somebody is doing: > > while (test_and_set_bit(0, &something)) { > /* critical section */ > mb(); > clear_bit(0, &something); > }
> The above construct it's discouraged of course when you can do > the same thing with a spinlock but some place is doing that.
Hmmm, maybe the Montavista people can volunteer to clean up all those places in the kernel code? ;)
cheers,
Rik -- "What you're running that piece of shit Gnome?!?!" -- Miguel de Icaza, UKUUG 2000
http://www.conectiva.com/ http://www.surriel.com/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |