IP Library Granted Patent US 11,200,090
Granted Patent B2
US 11,200,090 · App. 15/852,796 · Granted Dec 14, 2021

Identifying memory devices for swapping virtual machine memory pages

Inventors: Michael Tsirkin (Lexington, MA); Andrea Arcangeli (Imola, IT)
Assignee: Red Hat Israel, Ltd.
G06F9/5016G06F9/455G06F9/45558G06F9/50G06F2009/4557G06F2009/45583
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 11,200,090
App. No.
15/852,796
Granted
Dec 14, 2021
Kind
B2
Abstract

Systems and methods for identifying memory devices for swapping virtual machine memory pages. An example method may comprise: identifying, by a processing device, a workload type associated with a workload being executed by a computer system; identifying a memory device associated with the workload type; evaluating a memory pressure metric reflecting a period of time during which an application being executed by the computer system has been blocked by a memory allocation operation; and responsive to determining that the memory pressure metric exceeds a threshold value, allocating a memory block on the identified memory device.

Claims (41)

1. A method, comprising:

identifying, by a processing device, in view of a runtime value of a parameter of an application being executed by a computer system, a workload type associated with the application, wherein the workload type reflects a classification of the application based on a type of data being consumed by the application;

identifying a memory device that stores transformed memory pages that are transformed by a transformation function associated with the workload type;

evaluating a memory pressure metric associated with the application;

responsive to determining that the memory pressure metric exceeds a threshold value, allocating a memory block on the identified memory device; and

responsive to detecting a page fault triggered by an attempt to access a memory page by the application, swapping the memory page with the allocated memory block.

2. The method of claim 1 , wherein the memory device is provided by one of: a file or a raw storage device.

3. The method of claim 1 , wherein the memory device is provided by one of: a compressed storage device, an encrypted storage device, or a huge page device.

4. The method of claim 1 , further comprising:

identifying an uncompressed memory device responsive to determining that the workload is associated with at least one of: video stream data or audio stream data.

5. The method of claim 1 , further comprising:

identifying a compressed memory device responsive to determining that the workload is associated with uncompressed data.

6. The method of claim 1 , further comprising:

identifying an encrypted memory device responsive to determining that the workload is associated with security-sensitive data.

7. The method of claim 1 , further comprising:

identifying a huge page memory device responsive to determining that the workload is associated with huge page memory pages.

8. The method of claim 1 , wherein identifying the memory device type comprises identifying, in a memory data structure, a record mapping the workload type identifier to a type identifier of the memory device.

9. A computer system comprising:

a memory; and

a processor, coupled to the memory, to:

identify, in view of a runtime value of a parameter of an application being executed by the computer system, a workload type associated with the application, wherein the workload type reflects a classification of the application based on a type of data being consumed by the application;

identify a memory device that stores transformed memory pages that are transformed by a transformation function associated with the workload type;

evaluate a memory pressure metric associated with the application;

responsive to determining that the memory pressure metric exceeds a threshold value, allocate a memory block on the identified memory device; and

responsive to detecting a page fault triggered by an attempt to access a memory page by the application, swap the memory page with the allocated memory block.

10. The system of claim 9 , wherein the memory device is provided by one of: a compressed storage device, an encrypted storage device, or a huge page device.

11. The system of claim 9 , wherein the processor is further to:

identify an uncompressed memory device responsive to determining that the workload is associated with at least one of: video stream data or audio stream data.

12. The system of claim 9 , wherein the processor is further to:

identify a compressed memory device responsive to determining that the workload is associated with uncompressed data.

13. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a computer system, cause the computer system to perform operations comprising:

identify, in view of a runtime value of a parameter of an application being executed by the computer system, a workload type associated with the application, wherein the workload type reflects a classification of the application based on a type of data being consumed by the application;

identify a memory device that stores transformed memory pages that are transformed by a transformation function associated with the workload type;

evaluate a memory pressure metric associated with the application;

responsive to determining that the memory pressure metric exceeds a threshold value, allocate a memory block on the identified memory device; and

responsive to detecting a page fault triggered by an attempt to access a memory page by the application, swap the memory page with the allocated memory block.

14. The computer-readable non-transitory storage medium of claim 13 , wherein the memory device is provided by one of: a file or a raw storage device.

15. The computer-readable non-transitory storage medium of claim 13 , further comprising executable instructions to cause the processing device to:

identify an uncompressed memory device responsive to determining that the workload is associated with at least one of: video stream data or audio stream data.

16. The computer-readable non-transitory storage medium of claim 13 , further comprising executable instructions to cause the processing device to:

identifying a compressed memory device responsive to determining that the workload is associated with uncompressed data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2018
From: TSIRKIN, MICHAEL; ARCANGELI, ANDREA
To: RED HAT ISRAEL, LTD.
Reel/Frame 044542/0349 →
Continuity (2)
Continuation 14281995 · May 20, 2014
Related Publication 20180121243A1 · May 3, 2018
Cited By (1)
US 12,217,089