Mike Christie wrote: > James Smart wrote: >> Mike Christie wrote: >>> For the tasks you want to do for the fc class is performance critical? >> No, it should not be. >> >>> If not, you could do what the iscsi class (for the netdev people this is >>> drivers/scsi/scsi_transport_iscsi.c) does and just suffer a couple >>> copies. For iscsi we do this in userspace to send down a login pdu: >>> >>> /* >>> * xmitbuf is a buffer that is large enough for the iscsi_event, >>> * iscsi pdu (hdr_size) and iscsi pdu data (data_size) >>> */ >> Well, the real difference is that the payload of the "message" is actually >> the payload of the SCSI command or ELS/CT Request. Thus, the payload may > > I am not sure I follow. For iscsi, everything after the iscsi_event > struct can be the iscsi request that is to be transmitted. The payload > will not normally be Mbytes but it is not a couple if bytes. > >> range in size from a few hundred bytes to several kbytes (> 1 page) to >> Mbyte's in size. Rather than buffer all of this, and push it over the >> socket, >> thus the extra copies - it would best to have the LLDD simply DMA the >> payload like on a typical SCSI command. Additionally, there will be >> response data that can be several kbytes in length. >> > > Once you have got the buffer to the class, the class can create a > scatterlist to DMA from for the LLD. I thought. iscsi does not do this > just because it is software right now. For qla4xxx we do not need That should be, we do need. - : 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