In a virtual machine, there may be multiple levels of virtual to physical address translation. Just as an operating system takes an application virtual address and translates it to what it believes is a physical address, a virtualization system may take that guest physical address and convert it to a real physical address. In existing systems, two levels of address translation are typically supported (e.g., via the first and second level page tables described above), but may be extendable in that stacked virtual machines using similar techniques may be implemented.
Parallel Memory Initialization
At node initialization time, multiple physical CPUs on each node can begin zeroing all the pages in a node. This may be independent of the guest operating system which spans all the nodes taken together. In some embodiments, each node's hyper-kernel code does not need to wait for the completion of this activity. Once a page is zeroed it may be put into a queue (referred to herein as the “pre-zero” list) of already zeroed pages. Thus, the hyper-kernel on each node can start working “instantly.”