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, by the hypervisor on a processor allocated to the virtual machine, an address translation instruction, which is included in an instruction set architecture (ISA) of each core of the processor having one or more cores, 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, by the hypervisor on a processor allocated to the virtual machine, an address translation instruction, which is included in an instruction set architecture (ISA) of each core of the processor having one or more cores, 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, by the hypervisor on a processor allocated to the virtual machine, an address translation instruction, which is included in an instruction set architecture (ISA) of each core of the processor having one or more cores, 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, by the hypervisor on the processor, an address translation instruction, which is included in an instruction set architecture (ISA) of each core of the processor having one or more cores, 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