"A Comparison of Software and Hardware Techniques for x86 Virtualization"

Keith Adams, VMware Inc.

Friday, October 13, 2006 at 12:00 P.M.

Room 368 (3rd Floor CIT)

Until recently, the x86 architecture has not permitted classical trap-and-emulate virtualization. Virtual Machine Monitors for x86, such as Vmware(R) Workstation and Virtual PC, have instead used binary translation of the guest kernel code. However, both Intel and AMD have now introduced architectural extensions to support classical virtualization.

We compare an existing software VMM with a new VMM designed for the emerging hardware support. Surprisingly, the hardware VMM often suffers lower performance than the pure software VMM. To determine why, we study architecture-level events such as page table updates, context switches and I/O, and find their costs vastly different among native, software VMM and hardware VMM execution.

We find that the hardware support fails to provide an unambiguous performance advantage for two primary reasons: first, it offers no support for MMU virtualization; second, it fails to co-exist with existing software techniques for MMU virtualization. We look ahead to emerging techniques for addressing this MMU virtualization problem in the context of hardware-assisted virtualization.

[Joint work with Dr. Ole Agesen, based on a paper to appear at ASPLOS 2006]

Short Biography:

Keith Adams (ScB '00) is a staff engineer in the monitor group at VMware. He has helped to design and implement VMware Virtual SMP, the first multiprocessor capable VMM for the x86. More recently he has worked on the design and implementation of VMware's VMM support for hardware virtualization technologies such as Intel's VT and AMD's SVM.

Host: Tom Doeppner