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…

February 11, 2007

Filed under: Uncategorized — Muli Ben-Yehuda @ 2:08 PM

Trying to get back in the habit of writing here, I decided to (re)start posting interesting articles and papers.

“Roadmap to a Failure-Resilient Operating System”, by Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum. Interesting article, although not much new. MINIX 3. Drivers is major source of operating system bugs, therefore we move the drivers to a separate address space and contain the bugs. Mentions DMA, with IOMMUs as the solution, no discussion of how it fits in with the rest of the system. Performance Degradation of 5-10 percent when compared to MINIX 2 with in-kernel drivers, no comparison against Linux or other OS’s. See also Comparing Linux and MINIX on

Random thought: what if we ran drivers each in its own address space, but all with supervisor privileges? Is this a worthwhile point to explore in the performance/protection tradeoff?

Blog at