HARDWARE-ASSISTED GUEST ADDRESS SPACE SCANNING IN A VIRTUALIZED COMPUTING SYSTEM
First Claim
1. A method of scanning a guest virtual address (GVA) space generated by a guest operating system executing in a virtual machine of a virtualized computing system, the method comprising:
- setting, in a scan of the GVA space by a hypervisor that manages the virtual machine, a current GVA to a first GVA in the GVA space;
executing, on a processor allocated to the virtual machine, an address translation instruction, which is in an instruction set of the processor, to perform a first address translation of the current GVA;
reading a register of the processor to determine a first error resulting from the first address translation;
determining, in response to the first error, a level of a faulting page table in a first page table hierarchy generated by the guest operating system; and
setting the current GVA to a second GVA based on the level of the faulting page table.
2 Assignments
0 Petitions
Accused Products
Abstract
An example method of scanning a guest virtual address (GVA) space generated by a guest operating system executing in a virtual machine of a virtualized computing system includes setting, in a scan of the GVA space by a hypervisor that manages the virtual machine, a current GVA to a first GVA in the GVA space; executing, on a processor allocated to the virtual machine, an address translation instruction, which is in an instruction set of the processor, to perform a first address translation of the current GVA; reading a register of the processor to determine a first error resulting from the first address translation; determining, in response to the first error, a level of a faulting page table in a first page table hierarchy generated by the guest operating system; and setting the current GVA to a second GVA based on the level of the faulting page table.
-
Citations
20 Claims
-
1. A method of scanning a guest virtual address (GVA) space generated by a guest operating system executing in a virtual machine of a virtualized computing system, the method comprising:
-
setting, in a scan of the GVA space by a hypervisor that manages the virtual machine, a current GVA to a first GVA in the GVA space; executing, on a processor allocated to the virtual machine, an address translation instruction, which is in an instruction set of the processor, to perform a first address translation of the current GVA; reading a register of the processor to determine a first error resulting from the first address translation; determining, in response to the first error, a level of a faulting page table in a first page table hierarchy generated by the guest operating system; and setting the current GVA to a second GVA based on the level of the faulting page table. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable medium having instructions stored thereon that when executed by a processor cause the processor to perform setting, in a scan of the GVA space by a hypervisor that manages the virtual machine, a current GVA to a first GVA in the GVA space;
-
executing, on a processor allocated to the virtual machine, an address translation instruction, which is in an instruction set of the processor, to perform a first address translation of the current GVA; reading a register of the processor to determine a first error resulting from the first address translation; determining, in response to the first error, a level of a faulting page table in a first page table hierarchy generated by the guest operating system; and setting the current GVA to a second GVA based on the level of the faulting page table. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A virtualized computing system, comprising:
-
a hardware platform including a processor and memory; and a software platform executing on the hardware platform, the software platform including a hypervisor managing a virtual machine having a guest operating system executing therein, the guest operating system generating a guest virtual address (GVA) space, the hypervisor executable by the processor to; set, in a scan of the GVA space, a current GVA to a first GVA in the GVA space; execute, on the processor, an address translation instruction, which is in an instruction set of the processor, to perform a first address translation of the current GVA; read a register of the processor to determine a first error resulting from the first address translation; determine, in response to the first error, a level of a faulting page table in a first page table hierarchy generated by the guest operating system; and set the current GVA to a second GVA based on the level of the faulting page table. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification