The University of New South Wales

Get more device drivers out of the kernel!


Peter Chubb

    School of Computer Science and Engineering
    Sydney 2052, Australia


Now that Linux has fast system calls, good (and getting better) threading, and cheap context switches, it's possible to write device drivers that live in user space for whole new classes of devices. Of course, some device drivers (Xfree, in particular) have always run in user space, with a little bit of kernel support. With a little bit more kernel support (a way to set up and tear down DMA safely, and a generalised way to be informed of and control interrupts) almost any PCI bus-mastering device could have a user-mode device driver.

I shall talk about the benefits and drawbacks of device drivers being in user space or kernel space, and show that performance concerns are not really an issue---in fact, on some platforms, our user-mode IDE driver out-performs the in-kernel one. I shall also present profiling and benchmark results that show where time is spent in in-kernel and user-space drivers, and describe the infrastructure I've added to the Linux kernel to allow portable, efficient user-space drivers to be written.

BibTeX Entry

    month            = jul,
    paperurl         = {},
    booktitle        = {Ottawa Linux Symposium},
    author           = {Peter Chubb},
    year             = {2004},
    title            = {Get More Device Drivers out of the Kernel!},
    address          = {Ottawa, Canada}