About Publications Downloads Related Projects Team L4hq.org  
 
Projects
Pistachio
Kickstart
Download
Virtualization
Pre-virtualization
Device Drivers
Multiprocessor
Marzipan
BurnNT
Download
IDL4
Release Notes
Documentation
Download
Persistence
Hazelnut
Download
Getting started
 
Miscellaneous
Mailing lists
Tools
VMwareGateway
Workshops
Google L4Ka.org:
 
 

Unmodified Device Driver Reuse

We reuse unmodified device drivers by running them within their original operating system in a virtual machine. Multiple client virtual machines are able to multiplex the devices, by sending requests to installable mapper modules within the device driver OS. The drivers run at user-level and are preemptible, and thus support modular reuse in new OS endeavors.

Driver Reuse Architecture
Diagram: consolidated driver reuse architecture.

By isolating device drivers within their own virtual machines, we improve system dependability. Via virtual machine reboot, drivers are restartable.

Driver Isolation Architecture
Diagram: isolated driver reuse architecture.

The active memory consumption of our L4Ka::Linux driver reuse is bounded, whether using disk or network, due to the Linux kernel's reuse of memory buffers. The network driver Linux receives all packets into its own memory, and then copies them to the appropriate client Linux instances (subject to security constraints).

Active Memory Working Set
Graph: active memory working set for several work loads versus time.

In the TTCP network benchmark, used to determine the overhead of the driver reuse, and on a machine with a Pentium 4 2.8 GHz processor and an Intel 82540 gigabit network adapter, throughput loss was 2.5% compared to native Linux. CPU utilization increased, as expected for the Pentium 4, which flushes many processor caches on address space switches.

Network Performance
Diagram: the TTCP network benchmark configuration, and its performance.

For demonstrating application performance, we used the PostMark benchmark, which emulates an Internet mail server. It performs many file operations, which we configured to take place via NFS. The NFS server used our device driver reuse framework, and simultaneously exercised the network and disk drivers. The disk was a SATA Maxtor 6Y120M0.

PostMark NFS Benchmark
Diagram: the PostMark NFS benchmark setup.

The average benchmark runtime was 343.4 seconds, with a standard deviation of 2.4%. The standard deviation was over twice the loss in performance due to driver reuse. Both the isolated and consolidated driver reuse configurations had higher CPU utilization than natlive Linux.

Postmark NFS CPU Utilization
Graph: the PostMark NFS benchmark CPU utilization versus time.

For more information on unmodified driver reuse, read our publication Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines.

More Information

   
 
 
 
  Mail to webmaster   © 2000-2010 University of Karlsruhe