Re: [PATCH] 2.5.3 remove global semaphore_lock spin lock.

Jens Axboe (axboe@suse.de)
Fri, 1 Feb 2002 16:58:46 +0100


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/