The Linux kernel provides a robust implementation of both the host and device side of USB. While we can all easily quote the theoretical throughput of each USB speed defined by the specifications, the numbers can be quite different in practice, with variation due to the device class and implementation, the format and structure of user data, and the implementations of both the driver and userspace software running on both the device and host. This presentation will explore some of the common pitfalls of USB software on both the device and host sides as it relates to performance and will show some techniques to maximize throughput. Analysis will be performed using several different USB device controllers. A USB hardware analyzer and ftrace with kernelshark will be used to find performance bottlenecks on both the the kernel and userspace sides in an interactive demonstration.
Proprietor and Software Developer, Signal 11 Software
Alan first started programming when he was four years old on his dad's Commodore 64 and began using Linux in the mid-90s while in high school. He currently works for his own company, Signal 11 Software, where he creates and debugs embedded systems for a wide range of industries. Alan is the creator and maintainer of M-Stack, a free and open source USB device stack for PIC Microcontrollers, and is also the creator and maintainer of HIDAPI, a... Read More →
Tuesday April 29, 2014 10:30am - 11:20am
Attendance numbers do not account for private attendees. Get there early!