A friend of mine sent me this link to an entry on Avi Kivity’s blog, where the KVM maintainer and Linux kernel developer states (somewhat equivocally) that “paravirtualization is dead.”
It’s a brief entry, fairly matter of fact. Too bad I could hardly understand a word of it. Neither could my friend. It was one of those things you know is significant, if only you could grasp the meaning.
A couple of e-mails later to settle on a time, and I was on the phone to Qumranet, where Kivity works, in Israel so I could find out what the heck he was talking about.
In his blog, Kivity did explain that not all paravirtualization (PV) would be dead–specifically, he was talking about the aspects of PV that dealt with the Memory Management Unit (MMU).
One of the big advantages of PV is that it lets “guest OS drivers reduce the proportion of
hardware resources that the VMM must emulate in software, reducing
overhead in a manner that can boost performance dramatically,” according to an article on the Intel Software Network.
In other words, PV does a lot of work in software so the hardware won’t have to.
Kivity explained to me (thankfully using short words) that his blog entry was meant to highlight something that’s already well known to many in the virtualization community. The onset of new processors, such as AMD’s Barcelona, that have much greater on-board memory management, renders the MMU aspects of PV obsolete. Or, at least it will as Barcelona chips propagate through a release cycle and Intel gets something out with extended page table (EPT) or nested page table (NPT) enabled hardware.
With EPT and NPT technology, there is no longer the need for a specialized guest OS kernel to specifically handle MMU issues. Now the hardware will soon be good enough to handle that responsibility again.
As Kivity stated in his blog and to me, not all PV is dead:
“I/O device virtualization is certainly the best way to get good I/O
performance out of virtual machines, and paravirtualized clocks are
still necessary to avoid clock-drift issues.”
Companies that use the paravirtualization method, such as XenSource, may need to alter their code significantly to adjust for the obsolescence of MMU PV. KVM, which is currently a part of the mainline Linux kernel, uses a different technique (full virtualization) and isn’t affected.
Kivity told me that KVM can easily be configured to use or ignore hardware-based MMU, depending EPT/NPT availability on the installed platform.
So, statement explained. Head swimming, I’ll try to focus on other, less complicated things now. Like world peace.