Hello,
On 04/27/2015 03:07 AM, Nobuo Iwata wrote:
(...snip...)
2) User space transmission
USB/IP transfer URBs in kernel space. It's better for performance but
difficult to introduce application protocols.
Like fuse for file systems, it allows to transfer URBs in user space.
When usbip_ux.ko is loaded, it replaces kernel_sendmsg() and
kernel_recvmsg() with user spcace interface. When USB/IP utilities find
usbip_ux.ko, they start threads to read/write PDUs from/to usbip_ux.ko
and send/recv them.
Please correct me if I misunderstood something but aren't you rewriting
most of the functionality which is available through the /dev/bus/usb
nodes? Those nodes are used by libusb to communicate with the device so
you can submit transfers etc. straight from userspace using generic raw
usb driver.
As far as I understand your design you have kernel stub driver which is
sending and receiving data via socket fd received from userspace. Now
after this series you are exporting all messages to userspace where
daemon is sending them using web sockets. Am I right?
I don't see what are the benefits of such kernel driver?
Couldn't you just simply use libusb in your daemon and do everything
from userspace? Such solution could be beneficial for older kernel
because you don't need to backport your patches but simply use your
daemon which will be compatible with most kernel versions as libusb is
working with them.
--
Krzysztof Opasiak
Samsung R&D Institute Poland
Samsung Electronics
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html