L4Ka Project

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

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

Driver Isolation 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

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

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

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

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


More Information