IP Library › Granted Patent US 9,547,600
Granted Patent B2
US 9,547,600 · App. 14/447,238 · Granted Jan 17, 2017

Method and system for restoring consumed memory after memory consolidation

Inventors: Gabriel Tarasuk-Levin (Sunnyvale, CA); Anne Holler (Los Altos, CA)
Assignee: VMware, Inc.
G06F12/0862G06F12/08G06F12/0868G06F12/12G06F2212/1024G06F2212/151G06F2212/152G06F2212/6022
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,547,600
App. No.
14/447,238
Filed
Jul 30, 2014
Granted
Jan 17, 2017
Kind
B2
Examiner
ROJAS, MIDYS
Art Unit
2133
USPC
711/137
Abstract

One embodiment of the system disclosed herein facilitates reduction of latency associated with accessing content of a memory page that has been swapped out by a guest operating system in a virtualized computer system. During operation, a hypervisor detects an I/O write command issued by the guest operating system at a swap location within the guest operating system's swap file and records the swap location. The hypervisor then prefetches contents of a page stored at the swap location within the guest operating system's swap file into a prefetch cache in host machine memory. Subsequently, the hypervisor detects an I/O read command issued by the guest operating system at the swap location within the swap file. In response, the hypervisor provides contents of the page to the guest operating system from the prefetch cache, thereby avoiding accessing the guest operating system's swap file.

Claims (44)

1. A method for reducing latency associated with accessing content of a memory page that has been previously swapped out by a guest operating system in a virtualized computer system, comprising:

identifying content of the memory page that has been previously swapped out by the guest operating system to a swap file;

prefetching the identified content in the guest operating system's swap file;

caching the prefetched content in a prefetch cache in host machine memory;

detecting an I/O read command which is associated with the cached content and issued by the guest operating system; and

providing the cached content from the prefetch cache, thereby avoiding accessing the guest operating system's swap file.

2. The method of claim 1 , wherein identifying the content of the memory page that has been previously swapped out by the guest operating system comprises receiving information regarding the swapped out content from within the virtual machine.

3. The method of claim 1 , wherein identifying the content of the memory page that has been previously swapped out by the guest operating system comprises detecting an I/O write command issued by the guest operating system at a swap location within the guest operating system's swap file.

4. The method of claim 1 , further comprising deleting the content from the prefetch cache subsequent to providing the content to the guest operating system.

5. The method of claim 1 , further comprising receiving address information associated with the guest operating system's swap file at the virtual machine's boot-up.

6. The method of claim 1 , further comprising prefetching contents of a plurality of pages in an order that is reverse to an order in which these pages are swapped out by the guest operating system.

7. A method for reducing latency associated with accessing content of a memory page that has been evicted out of a buffer cache of a guest operating system of a virtual machine in response to a ballooning process, comprising:

detecting an I/O read command from the guest operating system for a full-sized page stored on a virtual disk of the virtual machine, the page having the content of the memory page;

recording a location of the full-sized page as stored on the virtual disk;

determining that the guest operating system is writing to the memory page and recording data regarding the memory page;

prefetching contents of the memory page from the recorded location on the virtual disk;

detecting that a guest operating system attempts to read at the recorded location; and

providing the prefetched content of the full-sized page to the guest operating system.

8. The method of claim 7 , wherein determining that the guest operating system is writing to the memory page further comprises:

setting a write trace on the memory page, the memory page being a page in the virtual machine's physical memory, and

receiving an event signal when the guest operating system writes to the memory page.

9. The method of claim 7 , wherein prefetching contents of the memory page comprises storing contents of the full-sized page in a host prefetch cache.

10. A non-transitory computer readable storage medium storing instructions which when executed by a processor cause the processor to perform a method for reducing latency associated with accessing content of a memory page that has been previously swapped out by a guest operating system in a virtualized computer system, the method comprising:

identifying content of the memory page that has been previously swapped out by the guest operating system to a swap file;

prefetching the identified content from the guest operating system's swap file;

caching the prefetched content in a prefetch cache in host machine memory;

detecting an I/O read command which is associated with the cached content and issued by the guest operating system; and

providing the cached content from the prefetch cache, thereby avoiding accessing the guest operating system's swap file.

11. The non-transitory computer readable storage medium of claim 10 , wherein identifying the content of the memory page that has been previously swapped out by the guest operating system comprises receiving information regarding the swapped out content from within the virtual machine.

12. The non-transitory computer readable storage medium of claim 10 , wherein identifying the content of the memory page that has been previously swapped out by the guest operating system comprises detecting an I/O write command issued by the guest operating system at a swap location with the guest operating system's swap file.

13. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises deleting the contents from the prefetch cache subsequent to providing the contents to the guest operating system.

14. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises receiving address information associated with the guest operating system's swap file at the virtual machine's boot-up.

15. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises prefetching contents of a plurality of pages in an order that is reverse to an order in which these pages are swapped out by the guest operating system.

16. A non-transitory computer readable storage medium storing instructions which when executed by a processor cause the processor to perform a method for reducing latency associated with accessing content of a memory page that has been evicted out of a guest operating system's buffer cache in response to a ballooning process, the method comprising:

detecting an I/O read command from the guest operating system for a full-sized page stored on a virtual disk of the virtual machine, the page having the content of the memory page;

recording a location of the full-sized page as stored on the virtual disk;

determining that the guest operating system is writing to the memory page and recording data regarding the memory page;

prefetching contents of the memory page from the recorded location on the virtual disk;

detecting that a guest operating system attempts to read at the recorded location; and

providing the prefetched content of the full-sized page to the guest operating system.

17. The non-transitory computer readable storage medium of claim 16 , wherein determining that the guest operating system is writing to the memory page further comprises:

setting a write trace on the memory page, the memory page being a page in the virtual machine's physical memory, and

receiving an event signal when the guest operating system writes to the memory page.

18. The non-transitory computer readable storage medium of claim 16 , wherein prefetching content of the page comprises storing content of the page in a host prefetch cache.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2015
From: TARASUK-LEVIN, GABRIEL; HOLLER, ANNE
To: VMWARE, INC.
Reel/Frame 035179/0631 →
Continuity (2)
Provisional Application 61860186 · Jul 30, 2013
Related Publication 20150039838A1 · Feb 5, 2015