IP Library Granted Patent US 10,423,435
Granted Patent B1
US 10,423,435 · App. 16/006,061 · Granted Sep 24, 2019

Page swapping in virtual machine environment

Inventors: Farid Khafizov (Plano, TX); Andrey Mokhov (Moscow, RU)
Assignee: OPEN INVENTION NETWORK LLC
G06F9/45533G06F9/45558G06F9/5077
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,423,435
App. No.
16/006,061
Granted
Sep 24, 2019
Kind
B1
Abstract

Disclosed are examples of memory allocation and reallocation for virtual machines operating in a shared memory configuration creating a swap file for at least one virtual machine. One example method may include allocating guest physical memory to the swap file to permit the at least one virtual machine to access host physical memory previously occupied by the guest physical memory. The example method may also include determining whether an amount of available host physical memory is below a minimum acceptable level threshold, and if so then freeing at least one page of host physical memory and intercepting a memory access attempt performed by the at least one virtual machine and allocating host physical memory to the virtual machine responsive to the memory access attempt.

Claims (37)

1. A method, comprising:

retrieving available guest virtual memory levels for each client operating system of a plurality of client operating systems;

identifying whether any of the plurality of client operating systems' current guest virtual memory levels have fallen below an acceptable predefined threshold;

when at least one of the plurality of client operating systems' current guest virtual memory levels has fallen below the acceptable predefined threshold, then identifying at least one page of guest virtual memory from at least one client operating system that is not operating below the acceptable predefined threshold and that is identified as being least active;

swapping the at least one page of guest virtual memory from the at least one client operating system that is not operating below the acceptable predefined threshold and that is least active and allocating the at least one page of guest virtual memory to the client operating system that has fallen below the acceptable predefined threshold; and

intercepting a memory access attempt performed by at least one virtual machine and allocating host physical memory to the at least one virtual machine responsive to a memory access attempt by the at least one virtual machine.

2. The method of claim 1 , comprising determining whether an amount of available host physical memory for a client operating system is below a minimum acceptable level threshold, and if so then freeing at least one page of host physical memory.

3. The method of claim 2 , wherein if the amount of free host physical memory is not below the minimum acceptable level threshold then periodically re-determining whether the amount of free host physical memory is below the minimum acceptable level threshold.

4. The method of claim 1 , wherein the at least one virtual machine comprises a plurality of virtual machines.

5. The method of claim 1 , comprising allocating guest physical memory to a swap file to permit at least one virtual machine to access host physical memory previously occupied by the guest physical memory.

6. The method of claim 4 , wherein the plurality of client operating systems are different operating systems having different default memory page sizes.

7. The method of claim 1 , wherein the allocating of guest physical memory is performed by a hypervisor managing a plurality of virtual machines.

8. An apparatus, comprising:

a processor configured to

retrieve available guest virtual memory levels for each client operating system of a plurality of client operating systems,

identify whether any of the plurality of client operating systems' current guest virtual memory levels have fallen below an acceptable predefined threshold,

when at least one of the plurality of client operating systems' current guest virtual memory levels has fallen below the acceptable predefined threshold, then identify at least one page of guest virtual memory from at least one client operating system that is not operating below the acceptable predefined threshold at that is identified as being least active;

swap the at least one page of guest virtual memory from the at least one client operating system that is not operating below the acceptable predefined threshold and that is least active and allocate the at least one page of guest virtual memory to the client operating system that has fallen below the acceptable predefined threshold, and

intercept a memory access attempt performed by at least one virtual machine and allocate host physical memory to the at least one virtual machine responsive to a memory access attempt by the at least one virtual machine; and

a memory configured to be allocated to provide the guest physical memory and the host physical memory.

9. The apparatus of claim 8 , wherein the processor is configured to determine whether an amount of available host physical memory is below a minimum acceptable level threshold, and if so then freeing at least one page of host physical memory.

10. The apparatus of claim 9 , wherein if the amount of free host physical memory is not below the minimum acceptable level threshold then the processor periodically re-determines whether the amount of free host physical memory is below the minimum acceptable level threshold.

11. The apparatus of claim 8 , wherein the at least one virtual machine comprises a plurality of virtual machines.

12. The apparatus of claim 9 , wherein the processor is configured to allocate guest physical memory to a swap file to permit at least one virtual machine to access host physical memory previously occupied by the guest physical memory.

13. The apparatus of claim 8 , wherein the plurality of client operating systems are different operating systems having different default memory page sizes.

14. The apparatus of claim 8 , wherein the allocation of guest physical memory is performed by a hypervisor managing a plurality of virtual machines.

15. A non-transitory computer readable storage medium configured to store instructions that when executed cause a processor to perform:

retrieving available guest virtual memory levels for each client operating system of a plurality of client operating systems;

identifying whether any of the plurality of client operating systems' current guest virtual memory levels have fallen below an acceptable predefined threshold;

when at least one of the plurality of client operating systems' current guest virtual memory levels has fallen below the acceptable predefined threshold, then identifying at least one page of guest virtual memory from at least one client operating system that is not operating below the acceptable predefined threshold and that is identified as being least active;

swapping the at least one page of guest virtual memory from the at least one client operating system that is not operating below the acceptable predefined threshold and that is least active and allocating the at least one page of guest virtual memory to the client operating system that has fallen below the acceptable predefined threshold; and

intercepting a memory access attempt performed by at least one virtual machine and allocating host physical memory to the at least one virtual machine responsive to a memory access attempt by the at least one virtual machine.

16. The non-transitory computer readable storage medium of claim 15 , wherein processor is configured to perform determining whether an amount of available host physical memory for a client operating system is below a minimum acceptable level threshold, and if so then freeing at least one page of host physical memory.

17. The non-transitory computer readable storage medium of claim 16 , wherein if the amount of free host physical memory is not below the minimum acceptable level threshold then periodically re-determining whether the amount of free host physical memory is below the minimum acceptable level threshold.

18. The non-transitory computer readable storage medium of claim 15 , wherein the at least one virtual machine comprises a plurality of virtual machines.

19. The non-transitory computer readable storage medium of claim 15 , wherein processor is configured to perform allocating guest physical memory to a swap file to permit at least one virtual machine to access host physical memory previously occupied by the guest physical memory.

20. The non-transitory computer readable storage medium of claim 19 , wherein the plurality of client operating systems are different operating systems having different default page sizes and the allocating of guest physical memory is performed by a hypervisor managing a plurality of virtual machines.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE PATENT ASSIGNMENT AGREEMENT DATED NOVEMBER 30, 2021 PREVIOUSLY RECORDED AT REEL: 058426 FRAME: 0791. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2022
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058736/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2021
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058426/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2021
From: KHAFIZOV, FARID; MOKHOV, ANDREY
To: OPEN INVENTION NETWORK LLC
Reel/Frame 057216/0810 →
Continuity (2)
Continuation 13860581 · Apr 11, 2013
Provisional Application 61625765 · Apr 18, 2012
Cited By (3)
US 12,248,560 US 12,339,979 US 12,656,952