Hardware Virtualization Slower Than Software?
Jim Buzbee writes "Those you keeping up with the latest virtualization techniques being offered by both Intel and AMD will be interested in a new white paper by VMWare that comes to the surprising conclusion that hardware-assisted x86 virtualization oftentimes fails to outperform software-assisted virtualization. My reading of the paper says that this counterintuitive result is often due to the fact that hardware-assisted virtualization relies on expensive traps to catch privileged instructions while software-assisted virtualization uses inexpensive software substitutions. One example given is compilation of a Linux kernel under a virtualized Linux OS. Native wall-clock time: 265 seconds. Software-assisted virtualization: 393 seconds. Hardware-assisted virtualization: 484 seconds. Ouch. It sounds to me like a hybrid approach may be the best answer to the virtualization problem.
"
I'd like to think of VMware in a different mould than MS, but i'd still hate to take this info in w/o some third party verification.
What are you talking about in regards to a true hypervisor? You don't need a true hypervisor to use VT. The Linux kernel could use VT to run VMs (Xen is then completely unnecessary for open source virtualization).
Of course VT supports shadow page tables; how else could it virtualize? The problem is that it isn't accelerated. The guest OS needs to translate its virtual addresses to physical, like so: v --> p. The hypervisor needs to translate the guest's physical pages to machine pages, like so: p --> h. The TLB needs the final translation of: v --> h. VT offers no acceleration to promote v --> p --> h into the TLB. Currently, the hypervisor must maintain a shadow page table with v --> h, which the hardware automatically adds to the TLB. But the hypervisor must manually perform the translation of v --> p --> h, to add to the shadow page table. That is slow. Future revs of VT will automatically do the v --> p --> h. If you believe that happens now, then show me what I misunderstand, or implement support for it and disprove VMware's performance paper.