The reliability of device drivers is of critical importance to the overall stability of computer systems. Our approach to improving reliability of device drivers is to run them as unprivileged user processes, rather than in the kernel.
Running device drivers external to the kernel provides a number of advantages:
Much of the results of our user-level driver research are now forming part of the OKL4 product of Open Kernel Labs. Present ERTOS research is focussing on the use of IOMMUs for making device drivers untrusted, and the evaluation of the performance impact of IOMMUs.
The main perceived drawback of running device drivers at user-level is that it has a dramatic impact on performance. Previous work on user-level device drivers typically reported a 50% performance degradation over in-kernel device drivers, manifested as either a reduction in throughput or increase in CPU utilisation. Our current experiments suggests that this need not be the case.
Our experience with user-level drivers for storage devices shows that performance is similar to in-kernel drivers. This is not surprising, as disk latencies are high anyway, and file systems are optimised for hiding this latency.
More critical are high-bandwidth network devices, which are characterised by small (compared to disks) packet sizes and high interrupt rates. Our benchmarks (see detailed performance) indicate that even there the performance degradation can be kept reasonably low (less than 10% increase in CPU utilisation).
![]() |
![]() |
Joshua LeVasseur Device-driver reuse via virtual machines PhD Thesis, UNSW, Sydney, Australia, May, 2009 |
![]() |
![]() |
Myrto Zehnder and Peter Chubb Virtualising PCI Gelato ICE, Singapore, October, 2006 |
![]() |
![]() |
Myrto Zehnder and Peter Chubb Virtualising PCI Gelato ICE, Singapore, October, 2006 |
![]() |
![]() |
Ben Leslie, Peter Chubb, Nicholas FitzRoy-Dale, Stefan Götz, Charles Gray, Luke Macpherson, Daniel Potts, Yueting (Rita) Shen, Kevin Elphinstone and Gernot Heiser User-level device drivers: Achieved performance Journal of Computer Science and Technology, Volume 20, Number 5, pp. 654–664, September, 2005 |
![]() |
![]() |
Ben Leslie, Peter Chubb, Nicholas FitzRoy-Dale, Stefan Götz, Charles Gray, Luke Macpherson, Daniel Potts, Yueting (Rita) Shen, Kevin Elphinstone and Gernot Heiser User-level device drivers: Achieved performance Technical Report PA005043, NICTA, July, 2005 |
![]() |
![]() |
Peter Chubb Get more device drivers out of the kernel! Ottawa Linux Symposium, Ottawa, Canada, July, 2004 |
![]() |
![]() |
Peter Chubb Linux kernel infrastructure for user-level device drivers 5th Linux.conf.au, Adelaide, Australia, January, 2004 |
![]() |
![]() |
Ben Leslie, Nicholas FitzRoy-Dale and Gernot Heiser Encapsulated user-level device drivers in the Mungi operating system Proceedings of the Workshop on Object Systems and Software Architectures 2004, Victor Harbor, South Australia, Australia, January, 2004 |
![]() |
![]() |
Ben Leslie and Gernot Heiser Towards untrusted device drivers Technical Report UNSW-CSE-TR-0303, School of Computer Science and Engineering, March, 2003 |