Messages in this thread | | | Date | Fri, 1 Feb 2002 16:58:46 +0100 | From | Jens Axboe <> | Subject | Re: [PATCH] 2.5.3 remove global semaphore_lock spin lock. |
| |
On Thu, Jan 31 2002, Jeff Garzik wrote: > On Thu, Jan 31, 2002 at 03:55:02PM -0800, Andrew Morton wrote: > > > + unsigned long flags; > > > + wq_write_lock_irqsave(&sem->wait.lock, flags); > > > - spin_lock_irq(&semaphore_lock); > > > > I rather dislike spin_lock_irq(), because it's fragile (makes > > It's less flexible for architectures, too. > > spin_lock_irqsave is considered 100% portable AFAIK, and I make it my > own policy to s/_irq/_irqsave/ when the opportunity strikes in my PCI > drivers.
spin_lock_irq is cheaper, though, and sometimes you _know_ it's safe to use. For instance, if the function in question can block (ie never called with interrupts disabled) then using spin_lock_irq is always safe.
I've heard this portability argument before, anyone care to outline _what_ the problem allegedly is?? Major part of the kernel uses spin_lock_irq and I suspect we would be seeing lots of request list corruption did it not work.
-- Jens Axboe
- 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/
| |