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
|