Wednesday, April 24, 2013

Reading Notes: x86 Virtualization

Virtualization has gained a lot of attention in recent years. Here are some of my reading notes on the paper "A comparison of software and hardware techniques for x86 virtualization"

Things I liked and that were interesting
It was interesting to see that from this paper’s results software beats hardware. Usually the perception is that hardware is faster, but in this case of virtualization the software makes it possible to devise workarounds for the few difficult cases while being efficient on most normal cases. In the hardware approach however, the hardware has to be designed to handle all worst-case scenarios (for example throwing traps for all privileged state accesses) and is thus difficult to implement.
It was also interesting to see how virtualization was made possible on the x86 which was not originally designed for virtualization. The technical details on binary translation show that it must have been a very difficult engineering process for VMWare to make virtualization possible on the popular x86 platform.

Limitations and Problems I had
While the paper shows that software virtualization is still superior right now, once hardware manufacturers improve their virtualization support, binary translation might be in danger of becoming superfluous. When hardware naturally implements the complicated mechanisms related to mapping virtual resources (memory, devices, etc) to physical ones and handles them with sufficient efficiency and flexibility, there is no need to devise complicated software workarounds. In fact, in Intel and AMD’s new generation of CPU’s with virtualization support, they added support for MMU virtualization and from a recent evaluation paper by VMWare on can see that the second-generation CPUs already perform significantly better than the first generation.

Potential Next Steps
On the hardware virtualization support side, a lot of improvements can still be done, as this was only their first generation product. For example MMU virtualization can be implemented in the future, as was outlined with Intel’s Extended Page Tables (EPT) or AMD’s Nested Page Tables (NPT).
Furthermore, it might be critical for both sides to collaborate to combine software and hardware virtualization support. While hardware support might get more and more efficient once the technology matures, it still cannot provide the flexibility that the software approach offers. Therefore I think that both sides have advantages that they should try to combine.

This research and the future
I think the paper succeeds in giving a good overview and comparison of software and hardware virtualization techniques. It also talks about the details of binary translation with which Vmware has a lot of expertise in. Furthermore it helps hardware manufacturers to see the weaknesses in their current design. Overall I think the paper is quite relevant as it shows how virtualization is made possible on the x86 that was not originally designed for virtualization. It will be very interesting to see how software and hardware virtualization will coexist in the future.


Related Articles:
Reading Notes: A Protocol for Packet Network Intercommunication
Reading Notes: Data Center TCP (DCTCP)
Unix in a Nutshell

No comments:

Post a Comment