IP Library Granted Patent US 9,390,028
Granted Patent B2
US 9,390,028 · App. 14/797,201 · Granted Jul 12, 2016

Coordination between memory-saving mechanisms in computers that run virtual machines

Inventors: Abel Gordon (Haifa, IL); Muli Ben-Yehuda (Haifa, IL)
Assignee: STRATO SCALE LTD.
G06F12/109G06F9/45558G06F12/126G06F2009/45583G06F2212/151G06F2212/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,390,028
App. No.
14/797,201
Granted
Jul 12, 2016
Kind
B2
Abstract

A method includes running in a computer a hypervisor that allocates physical memory pages of the computer to a Virtual Machine (VM). A guest Operating System (OS), a virtual memory and a virtual storage device run in the VM. The guest OS maps the allocated physical memory pages to respective virtual memory pages, retains virtual memory pages that are frequently-accessed by the VM in the virtual memory, and swaps-out virtual memory pages that are rarely-accessed by the VM to the virtual storage. In the hypervisor, one or more of the physical memory pages allocated to the VM are selected, and the corresponding virtual memory pages preventing from being swapped-out by the guest OS, by marking the corresponding virtual memory pages in the guest OS as accessed thus causing the guest OS to regard the corresponding virtual memory pages as frequently-accessed.

Claims (22)

1. A method, comprising:

running in a computer a hypervisor that allocates physical memory pages of the computer to a Virtual Machine (VM);

running in the VM a guest Operating System (OS), a virtual memory and a virtual storage device, wherein the guest OS maps the allocated physical memory pages to respective virtual memory pages, retains virtual memory pages that are frequently-accessed by the VM in the virtual memory, and swaps-out virtual memory pages that are rarely-accessed by the VM to the virtual storage; and

in the hypervisor, selecting one or more of the physical memory pages allocated to the VM, and preventing the corresponding virtual memory pages from being swapped-out by the guest OS, by marking the corresponding virtual memory pages in the guest OS as accessed thus causing the guest OS to regard the corresponding virtual memory pages as frequently-accessed.

2. The method according to claim 1 , wherein marking the virtual memory pages as accessed comprises causing the guest OS to regard at least one virtual memory page as frequently-accessed even though the virtual memory page is rarely-accessed.

3. The method according to claim 1 , wherein selecting the physical memory pages comprises selecting at least one physical memory page that was deduplicated by the hypervisor.

4. The method according to claim 1 , wherein selecting the physical memory pages comprises selecting at least one physical memory page that was swapped-out by the hypervisor from a physical memory of the computer to a physical non-volatile storage device of the computer.

5. The method according to claim 1 , wherein marking the virtual memory pages as accessed comprises modifying, by the hypervisor, page-access information maintained by the guest OS.

6. The method according to claim 1 , wherein marking the virtual memory pages as accessed comprises reporting the selected physical memory pages to a driver running in the VM, and marking the virtual memory pages as accessed by the driver.

7. The method according to claim 6 , wherein marking the virtual memory pages as accessed comprises modifying, by the driver, page-access information maintained by the guest OS.

8. The method according to claim 6 , wherein marking the virtual memory pages as accessed comprises accessing the virtual memory pages by the driver.

9. A computer, comprising:

a physical memory; and

a Central Processing Unit (CPU), which is configured to run a hypervisor that allocates physical memory pages of the physical memory to a Virtual Machine (VM), to run in the VM a guest Operating System (OS), a virtual memory and a virtual storage device, wherein the guest OS maps the allocated physical memory pages to respective virtual memory pages, retains virtual memory pages that are frequently-accessed by the VM in the virtual memory, and swaps-out virtual memory pages that are rarely-accessed by the VM to the virtual storage, to select by the hypervisor one or more of the physical memory pages allocated to the VM, and to prevent the corresponding virtual memory pages from being swapped-out by the guest OS, by marking the corresponding virtual memory pages in the guest OS as accessed thus causing the guest OS to regard the corresponding virtual memory pages as frequently-accessed.

10. The computer according to claim 9 , wherein the CPU is configured to cause the guest OS to regard at least one virtual memory page as frequently-accessed even though the virtual memory page is rarely-accessed.

11. The computer according to claim 9 , wherein the CPU is configured to select the physical memory pages by selecting at least one physical memory page that was deduplicated by the hypervisor.

12. The computer according to claim 9 , wherein the CPU is configured to select the physical memory pages by selecting at least one physical memory page that was swapped-out by the hypervisor from a physical memory of the computer to a physical non-volatile storage device of the computer.

13. The computer according to claim 9 , wherein the CPU is configured to marking the virtual memory pages as accessed by modifying, by the hypervisor, page-access information maintained by the guest OS.

14. The computer according to claim 9 , wherein the CPU is configured to mark the virtual memory pages as accessed by reporting the selected physical memory pages to a driver running in the VM, and marking the virtual memory pages as accessed by the driver.

15. The computer according to claim 14 , wherein the CPU is configured to mark the virtual memory pages as accessed by modifying, by the driver, page-access information maintained by the guest OS.

16. The computer according to claim 14 , wherein the CPU is configured to mark the virtual memory pages as accessed by accessing the virtual memory pages by the driver.

17. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a Central Processing Unit (CPU) of a computer, cause the processor to run a hypervisor that allocates physical memory pages of a physical memory of the computer to a Virtual Machine (VM), to run in the VM a guest Operating System (OS), a virtual memory and a virtual storage device, wherein the guest OS maps the allocated physical memory pages to respective virtual memory pages, retains virtual memory pages that are frequently-accessed by the VM in the virtual memory, and swaps-out virtual memory pages that are rarely-accessed by the VM to the virtual storage, to select by the hypervisor one or more of the physical memory pages allocated to the VM, and to prevent the corresponding virtual memory pages from being swapped-out by the guest OS, by marking the corresponding virtual memory pages in the guest OS as accessed thus causing the guest OS to regard the corresponding virtual memory pages as frequently-accessed.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: STRATO SCALE LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 053184/0620 →
SECURITY INTEREST Recorded Jan 24, 2019
From: STRATO SCALE LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 048115/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2015
From: GORDON, ABEL; BEN-YEHUDA, MULI
To: STRATO SCALE LTD.
Reel/Frame 036064/0333 →
Continuity (2)
Provisional Application 62065688 · Oct 19, 2014
Related Publication 20160110291A1 · Apr 21, 2016