Muli Ben-Yehuda's journal

February 18, 2007

Filed under: Uncategorized — Muli Ben-Yehuda @ 10:18 PM

Gaaarg, been sick. Yael caught a nasty bug at my sister’s wedding and passed it on to me and Orna. Better than the other way around!

Today’s paper is “Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines”, by Joshua LeVasseur, Volkmar Uhlig, Jan Stoess, and Stefan Gotz. The paper is a bit hard to decipher, but ultimately pretty interesting… it presents “Device Driver Operating Systems (DD/OS)” – “driver domains”, in Xen parlance – where the hardware drivers reside in virtual machines and “clients” connect to the driver domains through a “translation module” – the familiar Xen frontend/backend drivers scheme.

At first I was pretty excited to read this paper, as I thought it dealt with direct hardware access from *unmodified* fully operating systems (i.e., fully virtualized), which is something I’m very interested in. Once I continued reading however it became apparent that the authors make a distinction between unmodified drivers and unmodified operating systems, and limit their implementation and evaluation to the para-virtualized case, which is not as interesting.

Still, notable points:

– they presented a nice work-around for the case where no IOMMU is available (and thus no DMA remapping) – allocating DMA’able pages from a special pool of pages for which physical address is equal to the machine address, which may or may not be shared between driver domains.

– they present a nice hack for non-isolation-capable IOMMUs where the single IOMMU context is multiplexed between different driver domains. This has some implications related to PCI bus latencies – not every device will tolerate not being able to DMA for a prolonged period of time.

– the abstract claims “network performance within 3-8% of a native Linux system”, which is pretty amazing considering the numbers I’ve seen for Xen’s network performance. In the evaluation section we learn that *throughput* is within 3-8% of a native Linux system, but *CPU utilization* is 1.6 times to 2.22 times worse(!) than native. That makes a lot more sense…

Blog at