>linuxsymposium
July 21-24th, 2004, Ottawa, Canada

Content

Register/Login
Schedule
Paper Presentations
Tutorials
BOFS/Meetings
Sponsors

Contacts

Information

Related

Venue
Travel
FAQ

Archives

Proceedings
Photos
2003
2002
2001
2000
1999


Home

Get More Device Drivers out of the Kernel!

Peter Chubb (peterc@gelato.unsw.edu.au)

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.