Messages in this thread | | | Date | Fri, 11 Jan 2013 05:41:18 -0800 | From | Greg KH <> | Subject | Re: Kernel driver vs libusb performance |
| |
On Fri, Jan 11, 2013 at 11:53:36AM +0200, Ozan Çağlayan wrote: > Hi, > > I have a device which I'm currently accessing using libusb. It's > basically a HID compliant USB device. It reports 32bytes of data with > a time resolution of 128Hz, e.g. I have to read and store 32bytes each > 1/128 second. One performance drawback is that those 32bytes chunks > are encrypted with AES so once I receive them through the USB endpoint > I first decrypt them. > > So 128Hz is quite a low polling frequency and can be handled in a > single-thread using a modern CPU, but I'm planning to run this loop on > a Raspberry Pi or namely low-end, cheap embedded processors. I'm also > using Python which is significantly slow on Raspberry Pi.
Ah, my sympathies, USB on a rpi is horrible, and you will have all sorts of nasty issues, no matter how you end up doing this (in the kernel or userspace).
> So I wonder whether writing a kernel driver which decrypts the packets > using in-kernel crypto API and then exposing them through a character > device node would bring a performance gain at all. At least on the > userspace side I may get rid of all the bus searching, crypto key > generation, fetching and decrypting boilerplate, am I in the wrong > way?
Test it out and see. I really don't think that user vs. kernel space is going to be the issue here, I think you are going to see some very real problems with the hardware itself in this area.
Best of luck,
greg k-h -- 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/
| |