Using writeable page tables for memory address translation in a hypervisor environment
First Claim
1. A method of managing memory in a processing system capable of simultaneously executing, within at least one virtual machine, multiple instantiations of one or more guest operating systems, without duplication of page tables provided by the processing system, said method comprising:
- requesting, by a guest operating system executing within a virtual machine, access to write to a page in a page table provided by the processing system;
determining, by a hypervisor executing on the processing system, whether the requested page table page to which the guest operating system is attempting to write is part of a page table page currently in use by the processing system;
upon determining that said page table page is part of a page table page currently in use by said processing system, unlinking, by the hypervisor, said page table page from a page directory to which said page table page belongs; and
granting said guest operating system temporary write access to said page table page.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and system for using writeable page tables to increase performance of memory address translation in computing environments utilizing a hypervisor. Guest operating systems are given temporary write-access to a page table page after the system confirms that such page is not part of the current address space (i.e., confirming that the page is part of a different page table from the one that is currently in use, such as a different user-space process). Alternatively, if the page is part of the currently running page table, the system invalidates the appropriate entry in the root page directory, thus “unlinking” it, and ensuring that the appropriate region of virtual address space is flushed from the translation lookaside buffer (TLB) in the current CPU and others that may be using it. After giving the OS write-access, the page is added to a validation queue. Validation of all 1024 entries and “re-hooking” of the page occurs whenever a page fault is taken due to the page being unhooked, or before context switching to another page table.
134 Citations
21 Claims
-
1. A method of managing memory in a processing system capable of simultaneously executing, within at least one virtual machine, multiple instantiations of one or more guest operating systems, without duplication of page tables provided by the processing system, said method comprising:
-
requesting, by a guest operating system executing within a virtual machine, access to write to a page in a page table provided by the processing system; determining, by a hypervisor executing on the processing system, whether the requested page table page to which the guest operating system is attempting to write is part of a page table page currently in use by the processing system; upon determining that said page table page is part of a page table page currently in use by said processing system, unlinking, by the hypervisor, said page table page from a page directory to which said page table page belongs; and granting said guest operating system temporary write access to said page table page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A memory having computer readable program code means embodied therein for causing simultaneous execution, within at least one virtual machine, of multiple instantiations of one or more guest operating systems, without duplication of page tables provided by a processing system, the memory comprising:
-
means for determining, by a hypervisor, whether a page table page to which a guest operating system, executing within a virtual machine, is attempting to write is part of a page table page currently in use by said processing system; means for unlinking, by the hypervisor, said page table page from a page directory to which said page table page belongs, when a determination is made that said page table page is part of a page table page currently in use by said processing system; and means for granting, by the hypervisor, said guest operating system temporary write access to said page table page.
-
-
12. A processing system for simultaneous execution, within at least one virtual machine, of multiple instantiations of one or more guest operating systems, without duplication of page tables provided by the processing system, comprising:
-
means for determining whether a page table page to which a guest operating system, executing within a virtual machine, is attempting to write is part of a page table page currently in use by said processing system; means for unlinking, by the hypervisor, said page table page from a page directory to which said page table page belongs, when a determination is made that said page table page is part of a page table page currently in use by said processing system; and means for granting said guest operating system temporary write access to said page table page. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification