Re: [PATCH 2.6.12.5 1/2] lib: allow idr to be used in irq context

From: Luben Tuikov
Date: Sun Aug 21 2005 - 15:45:08 EST


--- Luben Tuikov <luben_tuikov@xxxxxxxxxxx> wrote:
> --- James Bottomley <James.Bottomley@xxxxxxxxxxxx> wrote:
> > However, there is an infrastructure in the block layer called the
> > generic tag infrastructure which was designed precisely for this purpose
> > and which is designed to operate in IRQ context.
>
> James, I'm sure you're well aware that,
> - a request_queue is LU-bound,
> - a SCSI _transport_ (*ANY*) can _only_ address domain devices, but
> _not_ LUs. LUs are *not* seen on the domain.

Another thing very important to mention is that the layering
infrastructure should _not_ be broken, whereby LLDD are required
to use block layer tags.

First, there may not be one to one correspondence accross layers.

Second, a tag on a layer identifies that particular _layer_ object.
It should not be used across layers or across several layers:
Block->Scsi Core->LLDD.

Third, although SCSI task tags are a SAM concept, they are defined
by the protocol in use and generated and assigned by the Initiator
port. The block layer is _not_ an Initiator port. SCSI Core is
also _not_ an Initiator port.

SCSI Core should be impervious to task tags, i.e. to the Q in
I_T_L_Q nexus. The Q is never visible to it.

Luben

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