IP Library Granted Patent US 9,454,489
Granted Patent B2
US 9,454,489 · App. 14/802,839 · Granted Sep 27, 2016

Exporting guest spatial locality to hypervisors

Inventors: Kiran Tati (Santa Clara, CA); Gabriel Tarasuk-Levin (Sunnyvale, CA); Ka Wing Ho (Mountain View, CA); Jesse Pool (Mountain View, CA)
Assignee: VMware, Inc.
G06F12/0882G06F9/45558G06F12/08G06F12/10G06F2009/4557G06F2009/45583G06F2212/1008G06F2212/151G06F2212/654G06F2212/657
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,454,489
App. No.
14/802,839
Granted
Sep 27, 2016
Kind
B2
Abstract

When a request is made to retrieve a guest physical page from memory and a page fault occurs, a guest virtual page address that corresponds to the guest physical page is identified along with addresses for guest virtual pages that are near the guest virtual page in the virtual address space. Each identified guest virtual page address is translated into a corresponding guest physical page address and the corresponding guest physical pages are loaded into memory.

Claims (50)

1. A method for exporting spatial locality in a virtual address space of a guest executing on a host machine, the method comprising:

catching a page fault in response to a request to retrieve a guest physical;

identifying a guest virtual page address that corresponds to the guest physical;

identifying an address for each of one or more guest virtual pages that are nearby the guest virtual page;

translating each identified guest virtual page address into a corresponding guest physical page address;

transferring the guest physical page from a storage device into the memory; and

upon determining any of said corresponding guest physical pages are not in the memory, transferring said corresponding guest physical pages from the storage device into the memory.

2. The method of claim 1 , wherein the identification of the guest virtual page that corresponds to the guest physical page is performed by hardware included in the host machine, the hardware providing the identification of the guest virtual page at the time of the page fault.

3. The method of claim 1 , wherein the identification of the guest virtual page that corresponds to the guest physical page is performed by software executing on hardware included in the host machine.

4. The method of claim 3 , wherein the identifying of guest virtual page address that corresponds to the guest physical page comprises parsing an instruction of a software application executing within the guest that triggered the page fault to identify the guest virtual page that corresponds to the guest physical page.

5. The method of claim 1 , wherein the guest physical page and the nearby guest physical pages are exported to a destination machine as page faults occur in a virtual address space of the destination machine following a migration of the guest from the source machine to the destination machine.

6. The method of claim 1 ,

wherein the guest physical page is swapped-out to the storage device as part of a host-level swap, and

wherein the guest physical page and a plurality of guest physical pages that are spatially nearby the guest physical page are exported from the storage device to the host machine when performing a swap-in of the guest physical page.

7. The method of claim 1 , further comprising:

suspending the guest executing on the host machine, the suspending including writing, in guest virtual address space order, one or more guest physical pages of the guest to the storage device;

resuming the suspended guest on one of the host machine or another host machine; and

exporting the one or more guest physical pages that are spatially nearby one another from the storage device to the one of the host machine or the other host machine upon the resumption of the suspended guest.

8. A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit of a computer system, causes the processing unit to export spatial locality in a virtual address space of a guest executing on a host machine, by performing the steps of:

catching a page fault in response to a request to retrieve a guest physical;

identifying a guest virtual page address that corresponds to the guest physical;

identifying an address for each of one or more guest virtual pages that are nearby the guest virtual page;

translating each identified guest virtual page address into a corresponding guest physical page address;

transferring the guest physical page from a storage device into the memory; and

upon determining any of said corresponding guest physical pages are not in the memory, transferring said corresponding guest physical pages from the storage device into the memory.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the identification of the guest virtual page that corresponds to the guest physical page is performed by hardware included in the host machine, the hardware providing the identification of the guest virtual page at the time of the page fault.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the identification of the guest virtual page that corresponds to the guest physical page is performed by software executing on hardware included in the host machine.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the software parses an instruction generated by a software application executing within the guest to retrieve the guest physical page from the memory to identify the guest virtual page that corresponds to the guest physical page.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the guest physical page and the nearby guest physical pages are exported to a destination machine as page faults occur in a virtual address space of the destination machine following a migration of the guest from the source machine to the destination machine.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the guest physical page is swapped-out to the storage device as part of a host-level swap, and wherein the guest physical page and a plurality of guest physical pages that are spatially nearby the guest physical page are exported from the storage device to the host machine when performing a swap-in of the guest physical page.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the steps further include:

suspending the guest executing on the host machine, the suspending including writing, in guest virtual address space order, one or more guest physical pages of the guest to the storage device;

resuming the suspended guest on one of the host machine or another host machine; and exporting the one or more guest physical pages that are spatially nearby one another from the storage device to the one of the host machine or the other host machine upon the resumption of the suspended guest.

15. A computer system configured to export spatial locality in a virtual address space of a guest, the computer system comprising:

a memory;

a storage device for storing guest physical pages;

a processing unit programmed to perform the steps of:

catching a page fault in response to a request to retrieve a guest physical;

identifying a guest virtual page address that corresponds to the guest physical;

identifying an address for each of one or more guest virtual pages that are nearby the guest virtual page;

translating each identified guest virtual page address into a corresponding guest physical page address;

transferring the guest physical page from a storage device into the memory; and

upon determining any of said corresponding guest physical pages are not in the memory, transferring said corresponding guest physical pages from the storage device into the memory.

16. The computer system of claim 15 , wherein the identification of the guest virtual page that corresponds to the guest physical page is performed by software executing on the processing unit.

17. The computer system of claim 16 , wherein the identifying of the guest virtual page address that corresponds to the guest physical page comprises parsing an instruction of a software application executing within the guest that triggered the page fault to identify the guest virtual page that corresponds to the guest physical page.

18. The computer system of claim 15 , wherein the guest physical page and the nearby guest physical pages are exported to a destination machine as page faults occur in a virtual address space of the destination machine following a migration of the guest from the computer system to the destination machine.

19. The computer system of claim 15 , wherein the guest physical page is swapped-out to the storage device as part of a host-level swap, and wherein a virtual address spatial locality of the guest physical page is exported from the storage device to the computer system when performing a swap-in of the guest physical page.

20. The computer system of claim 15 , wherein the steps further include:

suspending the guest executing on the computer system, the suspending including writing, in guest virtual address space order, one or more guest physical pages of the guest to the storage device; and

exporting the virtual address spatial locality of the guest from the storage device to the computer system upon a resumption of the suspended guest.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (2)
Continuation 12938107 · Nov 2, 2010
Related Publication 20150324297A1 · Nov 12, 2015