From: Douglas Gilbert <dougg@xxxxxxxxxx> Subject: Re: RFC: SCSI Generic version 4 interface Date: Tue, 21 Nov 2006 17:06:46 -0500 > FUJITA Tomonori wrote: > > From: Douglas Gilbert <dougg@xxxxxxxxxx> > > Subject: RFC: SCSI Generic version 4 interface > > Date: Mon, 06 Nov 2006 16:47:30 -0500 > > > >> SCSI Generic version 4 interface structure > >> ========================================== > >> Version 1.1 > >> > >> Goals: > > > > (snip) > > > >> - same structure can be used for a synchronous (e.g. interruptible > >> ioctl) or asynchronous (e.g. ioctl()/read() ) pass through. > > > > Can you provide details on "asynchronous" part? > > I was trying to keep away from the implementation details > but various people have pushed for more details ... > > > Well as you are aware, the sg driver uses a write(), > poll_or_signal,read() sequence to do asynchronous IO > in version 3 (and roughly the same model in version 2). > > That write() has always made me uneasy and it is accident > prone. I think write and read interface works nicely (though it's accident prone as you said). They enable user-space applications to easily send and receive sg_io_v4 structures asynchronously in batches (v3 can't in batches). As you know, the current bsg adopts this interface. Another possible interface that I prefer is to send and receive sg_io_v4 structures via two ring buffers. > > The scsi target code needs sg for: > > > > - SAN gateway (like iSCSI to FC) > > on the initiator side, I assume. Just to be sure we're talking about the same thing; I've been building a linux box forwarding SCSI commands from iSCSI initiators to FC disk (an iSCSI-FC router). Tgt's iSCSI driver runs in user space, so needs user-space APIs to send SCSI commands (with attribute and tag) and TMFs to SCSI devices. Now the iSCSI driver can forward only SCSI commands by using bsg. It needs sg v4. Some other tgt drivers run in kernel space so we might try to add some tgt's kernel APIs for this later on. - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html