The point of virtualization
Posted Oct 11, 2007 5:09 UTC (Thu) by
roelofs (subscriber, #2599)
In reply to:
The point of virtualization by giraffedata
Parent article:
Matt Domsch on Linux support at Dell
Of course, if you have a counterargument more specific than a 100 page tome, I might admit I'm wrong.
Let the healing begin! :-)
Memory part 3: Virtual Memory
Specifically, see the section discussing shadow page tables: without some of the upcoming hardware assists, you need to do two "physical to virtual" translations (within the context of the given kernel--i.e., a "physical" address for a guest kernel isn't truly physical), and that involves (on x86-64) four separate, sequential, non-hardware-prefetchable memory accesses each--for a total of eight--plus the memory access for the actual data. IOW, 5 accesses become 9, and each one is extremely costly in terms of clock cycles due to the no-prefetch issue.
ObCaveat: this is all from Ulrich Drepper's paper and talk (recently given at a local LUG). While I'm pretty sure I've summarized it accurately, he's the expert, not me; I might be misrepresenting some of it. Also keep in mind that the really bad TLB penalties kick in for certain (large) data-member and working-set sizes, and neither of us has made any statement (that I'm aware of, anyway) as to how typical such things are in real applications. (For the kind I mostly work on, I'm pretty sure they have the potential to be quite common. Actually quantifying it, however, is...not so easy.)
Greg
(
Log in to post comments)