Real Time Linux Workshops
1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015
13th Real-Time Linux Workshop from October 20 to 22 at the Faculty of Electrical Engineering, Czech Technical University in Prague
Announcement - Hotels - Directions - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Sponsoring - Gallery
Generic user-level PCI drivers
Björn Döbel, Technische Universität Dresden
Adam Lackorzynski, Technische Universität Dresden
Hannes Weisbach, Technische Universität Dresden
Linux has become a popular foundation for systems with real-time capabilities such as in industrial control applications. In order to run such workloads on Linux, the kernel needs to provide certain properties, such as low interrupt latencies. For this purpose, the kernel has been thoroughly examined, tuned and verified. This examination includes all aspects of the kernel, including the device drivers necessary to run the system.
However, hardware may change and therefore require device driver updates or replacements. Such an update might require reevaluation of the whole kernel because of the tight integration of device drivers into the system and the manyfold ways of potential interactions. Such an approach is certainly time-consuming and might require out-of-office revalidation. To mitigate this, we propose to run device drivers in user-space applications. This allows to rely on the unmodified and already analyzed latency characteristics of the kernel when updating drivers, so that only the drivers themselves remain in the need of evaluation.
In this paper, we show that drivers for PCI devices can be run in user space by using the UIO framework and supplementing it with extensions to allow running any recent PCI device from user space. We report on our implementation and the achieved performance.