I was hurrying down the Newark airport terminal, wondering whether I was going to make the connecting flight to Seattle, en-route to Vancouver for the 9th USENIX Symposium on Operating Systems Design and Implementation. Suddenly, my cell phone rang. It was Michael Factor, a long-time co-worker and mentor. "Have you seen the email?" "No, I just landed in Newark and am on the way to catch a connection to Seattle. Which email?" "Here, let me read you the opening:
Your paper has been selected as one of two winners of the OSDI Jay Lepreau Best Paper award."
Receiving this award is a unique experience and a great honor. It is doubly sweet because of all the research projects I've worked on, the Turtles nested virtualization project is perhaps the one I am most proud of. When Orit, Ben, and I started working on it in 2008, we set out to do the impossible. Many colleagues claimed that efficient nested x86 virtualization on the Intel platform could not be done. Eventually, working long and hard, and with help from friends, we showed that not only could it be done, it even performs well. I've learned a lot in the process, about x86 virtualization, about leading a team, and about the art and craft doing research, but the most important lesson was to never lose hope, to always believe that eventually, it will work. And guess what? It did!
If you want to know how we did it, and what we learned in the process, check out The Turtles Project: Design and Implementation of Nested Virtualization.
In classical machine virtualization, a hypervisor runs multiple operating systems simultaneously, each on its own virtual machine. In nested virtualization a hypervisor can run multiple other hypervisors with their associated virtual machines. As operating systems gain hypervisor functionality---Microsoft Windows 7 already runs Windows XP in a virtual machine---nested virtualization will become necessary in hypervisors that wish to host them. We present the design, implementation, analysis, and evaluation of high-performance nested virtualization on Intel x86-based systems. The Turtles project, which is part of the Linux/KVM hypervisor, runs multiple unmodified hypervisors (e.g., KVM and VMware) and operating systems (e.g., Linux and Windows). Despite the lack of architectural support for nested virtualization in the x86 architecture, it can achieve performance that is within 6-8\% of single-level (non-nested) virtualization for common workloads, through multi-dimensional paging for MMU virtualization and multi-level device assignment for I/O virtualization.
The scientist gave a superior smile before replying, ``What is the tortoise standing on?'' ``You're very clever, young man, very clever'', said the old lady. ``But it's turtles all the way down!''