IP Library Granted Patent US 10,733,109
Granted Patent B1
US 10,733,109 · App. 16/506,569 · Granted Aug 4, 2020

Memory reclaim management for virtual machines

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 10,733,109
App. No.
16/506,569
Granted
Aug 4, 2020
Kind
B1
Abstract

System for for managing host reclaimable memory based on VM needs includes a plurality of VMs; a hypervisor configured to process VM memory requests; a host CPU configured to control host physical memory reclaim process; at least one VM being allocated physical memory; Guest tool configured to determine page types based on a memory map; and a host module configured to scan an LRU list for pages that it can reacquire, and to force a slowdown in VM operations when reclaim operations use up more than a predefined share of CPU time. The host CPU performs the following based on the page type: (i) hard lock protection, when the page is a VM kernel page, for host-based reclaim of the page when no other VM pages are left to reacquire; and (ii) access/dirty (A/D) bit marking, when the page is a regular VM page.

Claims (37)

1. A system for managing host reclaimable memory based on Virtual Machine (VM) needs, the system comprising:

a plurality of VMs running on the host;

a hypervisor configured to process VM memory requests;

a host CPU configured to control host physical memory reclaim process;

at least one VM being allocated physical memory by the host;

a Guest tool configured to determine page types based on a memory map; and

a host module configured to scan a Least Recently Used (LRU) list for pages that it can reacquire, and to force a slowdown in VM operations when reclaim operations use up more than a predefined share of CPU time,

wherein the host CPU performs one of the following based on the page type:

(i) executes a hard lock protection, when the page is a VM kernel page, to perform a host-based reclaim of the page for the host when no other VM pages are left to reacquire; and

(ii) executes access/dirty (A/D) bit marking, when the page is a regular VM page, to perform the host-based reclaim of the page for the host from the at least one VM.

2. The system of claim 1 , wherein the Guest tools move the VM DAX pages from a Guest LRU management and keep the VM DAX pages in a host LRU management.

3. The system of claim 1 , wherein the Guest tool determines VM kernel pages by accessing a memory map based on their addresses in a Guest memory.

4. The system of claim 1 , wherein the hypervisor periodically scans page tables and sets the A/D bits to “0” on a first pass.

5. The system of claim 1 , wherein the Guest tool informs the host kernel about which pages are needed by the VM.

6. The system of claim 1 , wherein, during the DAX LRU operation, the system scans guest memory pages to detect DAX pages based on their source location, marks the guest memory pages as DAX pages and removes the DAX pages from the LRU list.

7. The system of claim 1 , wherein, during the A/D bit marking, the system translates guest page addresses into host page addresses.

8. The system of claim 7 , wherein the system sets an A/D control bit as A when a “read” instruction is performed, and sets the A/D control bit as D when a “write” instruction is performed, so as to write-protect the physical pages from the VM write operations.

9. The system of claim 8 , wherein the hypervisor periodically scans through memory in order to identify pages are used by the VM.

10. The system of claim 1 , wherein the host CPU also (iii) executes a direct access (DAX) LRU operation, when the page is a VM DAX page, to perform a host-based reclaim of the page for the host from the at least one VM as if the page is a file cache page.

11. The system of claim 1 , wherein the host CPU also (iii) performs a synchronous deduplication of a memory page when the page is regular VM page, to perform a host-based reclaim of the page for the host from the at least one VM.

12. The system of claim 1 , wherein the host CPU also (iii) performs a compression of memory pages when the pages are regular VM pages, to perform a host-based reclaim of the pages for the host from the at least one VM.

13. The system of claim 1 , wherein the host CPU also (iii) performs a host-based reclaim operation, when the page is not a VM page.

14. The system of claim 1 , wherein the predefined share is at least 10%.

15. The system of claim 1 , wherein the slowdown is forced by the hypervisor identifying the VM as having a lower priority.

16. The system of claim 1 , wherein the slowdown is forced by the hypervisor forcing delays in handling VM-generated interrupts.

17. The system of claim 1 , wherein the wherein the host CPU also (i)(a) performs a synchronous deduplication of memory pages when the pages are regular VM page, if possible, otherwise, performs a compression of memory pages when the pages are regular VM pages, and then performs the access/dirty (A/D) bit marking in (ii).

18. A method for managing host reclaimable memory based on Virtual Machine (VM) needs, the method comprising:

starting a hypervisor for processing VM memory requests;

launching at least one VM on a host;

scanning a least recently used (LRU) list for memory pages;

determining VM kernel pages, DAX pages and regular VM pages;

forcing a slowdown in VM operations;

executing a host-based reclaim code, when the page is not a VM page;

executing a hard lock protection, when the page is a VM kernel page, to perform a host-based reclaim of the page for the host when no other VM pages are left to reacquire; and

executing access/dirty (A/D) bit marking, when the page is a regular VM page, to perform a host-based reclaim of the page for the host from the at least one VM.

19. The method of claim 18 , further comprising determining VM kernel pages by accessing a memory map based on their addresses in a Guest memory.

20. The method of claim 19 , further comprising executing a hypercall using Guest addresses of a VM kernel area to be locked as parameters.

Assignments (2)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2019
From: EMELYANOV, PAVEL; KOBETS, ALEXEY
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 049702/0908 →