lkml.org 
[lkml]   [2013]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2013-01-11 15:21    [W:0.084 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site