Virtual Machine Free Memory Page Hinting via Balloon Driver Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualized computer systems face issues with false out-of-memory situations due to the time window between a virtual machine hinting unused memory pages to the host and the host deallocating them, leading to inefficiencies and potential crashes, especially with larger memory chunks.

Innovation Solution

Implementing a hinting buffer by the balloon driver to atomically move memory pages from the hinting buffer to the guest free memory list, preventing the unavailability of hinted memory pages and thus avoiding false out-of-memory situations, and allowing for more efficient memory management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the virtual machine hints unused memory pages to the host for deallocation, then memory management efficiency is improved, but false out-of-memory situations occur during the time window between hinting and deallocation

Engineering Contradiction:
Improvememory management efficiencyVSAvoidmemory availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by maintaining a hinting buffer that pre-allocates memory pages before they are actually needed for hinting. This buffer acts as a advance preparation mechanism, ensuring that when memory pages need to be hinted to the host, substitute pages are already available in the buffer, preventing false out-of-memory situations during the hinting process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hinting buffer serves as an intermediary between the guest operating system's free memory list and the host's memory management. It decouples the hinting operation from the actual memory page usage, allowing the guest OS to hint pages without directly impacting the availability of pages in its free list, thus mediating the conflict between hinting efficiency and memory availability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If larger memory chunks are hinted to the host, then memory reuse efficiency is improved, but the time window for false out-of-memory situations increases

Engineering Contradiction:
Improvememory reuse efficiencyVSAvoidhinting processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The hinting buffer is pre-filled with substitute memory pages before large chunks need to be hinted. This preliminary preparation allows the system to process large memory hints without causing false out-of-memory errors, as the substitute pages are already in place. The buffer size can be configured to accommodate the expected size of memory chunks to be hinted, thereby resolving the contradiction between hinting large chunks and avoiding timing-related errors.

Inventive Principle:
Principle #10Preliminary action

3Speed

If memory pages are hinted without waiting for previous hints to be processed, then memory management speed is improved, but the risk of false out-of-memory situations increases

Engineering Contradiction:
Improvememory management speedVSAvoidmemory page availability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The hinting buffer acts as an intermediary that decouples the speed of hinting operations from the processing speed of the host. Multiple pages can be hinted in parallel by drawing from the pre-filled buffer, while the host processes them at its own pace. This mediation allows high-speed parallel hinting without compromising reliability, as the buffer ensures substitute pages are available regardless of host processing status.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

By pre-filling the hinting buffer with substitute pages, the system enables parallel hinting operations without waiting for host processing. The preliminary preparation of the buffer ensures that even as pages are being hinted in parallel, substitute pages remain available to prevent false out-of-memory situations, thus achieving both speed and reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11436141B2Free memory page hinting by virtual machines
Publication Date: 2022.09.06 RED HAT INC
  • US11436141B2 patent drawing
  • US11436141B2 patent drawing
  • US11436141B2 patent drawing

AI summary

Systems and methods for free memory hinting by virtual machines. An example method comprises: identifying, by a virtual machine running on a host computer system, a first memory page referenced by a free memory list maintained by the virtual machine; identifying a second memory page residing in a hinting buffer associated with the virtual machine; moving the second memory page to the free memory list; disassociating the first memory page from the free memory list; and notifying the host computer system of an identifier of the first memory page.