The design and implementation of microdrivers

Vinod Ganapathy, Matthew J. Renzelmann, Arini Balakrishnan, Michael M. Swift, Somesh Jha

Research output: Chapter in Book/Report/Conference proceedingConference contribution

45 Scopus citations

Abstract

Device drivers commonly execute in the kernel to achieve high performance and easy access to kernel services. However, this comes at the price of decreased reliability and increased programming difficulty. Driver programmers are unable to use user-mode development tools and must instead use cumbersome kernel tools. Faults in kernel drivers can cause the entire operating system to crash. User-mode drivers have long been seen as a solution to this problem, but suffer from either poor performance or new interfaces that require a rewrite of existing drivers. This paper introduces the Microdrivers architecture that achieves high performance and compatibility by leaving critical path code in the kernel and moving the rest of the driver code to a user-mode process. This allows data-handling operations critical to I/O performance to run at full speed, while management operations such as initialization and configuration run at reduced speed in user-level. To achieve compatibility, we present DriverSlicer, a tool that splits existing kernel drivers into a kernel-level component and a user-level component using a small number of programmer annotations. Experiments show that as much as 65% of driver code can be removed from the kernel without affecting common-case performance, and that only 1-6 percent of the code requires annotations.

Original languageEnglish (US)
Title of host publicationASPLOS XIII - Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems
PublisherAssociation for Computing Machinery
Pages168-178
Number of pages11
Edition2
ISBN (Print)9781595939586
DOIs
StatePublished - 2008
Event13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIII - Seattle, WA, United States
Duration: Mar 1 2008Mar 5 2008

Publication series

NameOperating Systems Review (ACM)
Number2
Volume42

Other

Other13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIII
Country/TerritoryUnited States
CitySeattle, WA
Period3/1/083/5/08

ASJC Scopus subject areas

  • Information Systems
  • Hardware and Architecture
  • Computer Networks and Communications

Keywords

  • Device drivers
  • Program partitioning
  • Reliability

Fingerprint

Dive into the research topics of 'The design and implementation of microdrivers'. Together they form a unique fingerprint.

Cite this