Re: io_request_lock question (2.2)

From: Andi Kleen (ak@suse.de)
Date: Fri Dec 08 2000 - 20:06:27 EST


On Fri, Dec 08, 2000 at 04:19:45PM -0800, Matthew Jacob wrote:
>
> > >
> > > On Fri, 8 Dec 2000, Alan Cox wrote:
> > >
> > > > > Yes, and I believe that this is what's broken about the SCSI midlayer. The the
> > > > > io_request_lock cannot be completely released in a SCSI HBA because the flags
> > > >
> > > > You can drop it with spin_unlock_irq and that is fine. I do that with no
> > > > problems in the I2O scsi driver for example
> > >
> > > I am (like, I think I *finally* got locking sorta right in my QLogic driver),
> > > but doesn't this still leave ints blocked for this CPU at least?
> >
> > spin_unlock_irq() does a __sti()
> > spin_unlock() doesn't.
>
> Umm. Okay, but you haven't changed your processor priority though, right?

There is no concept of spl levels in Linux ;) It only knows about
interrupts on or off.

> (I just don't *get* i386 stuff... I'll go off and ponder SParc code - &that& I
> understand).

It is very simple[1] : interrupts can be on or off.
__cli() disables them, __sti() enables them again.

When you want nesting use the _flags versions.

-Andi
[1] in linux, there are some architecture extensions for interrupt priorities, but linux
doesn't use them.

-
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/



This archive was generated by hypermail 2b29 : Fri Dec 15 2000 - 21:00:16 EST