Messages in this thread | | | Date | Thu, 20 Apr 2006 10:33:12 -0400 | From | James Smart <> | Subject | Re: [RFC] Netlink and user-space buffer pointers |
| |
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 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.
> ... I think there may be issues with packing structs or 32 bit > userspace and 64 bit kernels and other fun things like this so the iscsi > pdu and iscsi event have to be defined correctly and I guess we are back > to some of the problems with ioctls :(
Agreed. In this use of netlink, there's not a lot of wins for netlink over ioctls. It all comes down to 2 things: a) proper portable message definition; and b) what do you do with that non-portable user space buffer pointer ?
-- james s - 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/
| |