Professors Wang and Luo and their group in the Department of Computer Science and Technology, Peking University, have recently introduced a new memory virtualization technique called Dynamic Memory Paravirtualization (DMP). With DMP, binary code in the guest operating system can be dynamically patched by the hypervisor for improved performance. Their study is published in Issue 53 (January 2010) of Science China Information Science and is a significant contribution to system virtualization technology.
Virtualization, as a key technical basis of cloud computing, is predicted to have the highest impact on the future trends of service center infrastructure and operations through to 2012. Both Intel and AMD have redesigned their processors to enable hardware virtualization support. Several kinds of virtual machine monitors, such as Xen, VMware and KVM, have been developed using paravirtualization or full virtualization technology.
Paravirtualization can reduce the overhead of virtualization dramatically, but the source code of the guest operating system needs to be modified following the paravirtualization guide. Full virtualization does not require any change to the existing guest operation system, but usually needs virtualization assistance from hardware, and thus suffers a significant loss of performance.
Dynamic paravirtualization, as the core idea of DMP, differing from both paravirtualization and full virtualization, introduces a novel approach to designing a virtual machine monitor. In dynamic paravirtualization, the virtual machine monitor dynamically monitors and replaces hot instructions, which cause the greatest overhead for virtualization, in the guest operating system. The replacement of hot instructions is completely transparent to the guest operating system. "We are able to gain the performance benefit of paravirtualization while keeping the applicability of full virtualization to legacy operation systems," the professors write.
In this work, DMP focuses on the performance of memory virtualization. The technique involves exposing some of the hypervisor address translation structures to the guest and changing instructions that cause lots of page table traps so that the guest can use the exposed structures directly instead of trapping to the hypervisor. "Although we focus on memory virtualization in this paper, our design leaves the interfaces for paravirtualizing I/O," says Wang. "We plan to use adaptive code implantation to eliminate the I/O related VM exits and improve the performance of I/O virtualization."
"This paper presents an interesting approach, called dynamic paravirtualization, where VM 'exits' are dynamically replaced by code that avoids a trap," says one reviewer. "This is a very nice design point," says another reviewer. "This is a nice paper, I like the idea and I think it will work well."