Kernel driver vs libusb performance

From: Ozan ÃaÄlayan
Date: Fri Jan 11 2013 - 04:53:23 EST


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.

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?

Thanks,

--
Ozan ÃaÄlayan
Research Assistant
Galatasaray University - Computer Engineering Dept.
http://www.ozancaglayan.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/