Virtual Machine Memory Balloon Range-Based Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory ballooning in virtual machines leads to performance degradation due to memory fragmentation when allocating or breaking up contiguous guest memory to satisfy memory requests, as it depletes contiguous free memory and increases fragmentation.

Innovation Solution

Implementing a memory allocation technique that allows virtual machines to inflate a memory balloon with a set of guest memory within a specified range, minimizing fragmentation by identifying contiguous memory pages that match the requested size, rather than breaking up or allocating multiple portions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory ballooning is used to reclaim unused memory from virtual machines, then memory utilization efficiency is improved, but memory fragmentation increases and performance degrades

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidmemory fragmentation
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent changes the parameter of memory allocation by introducing a range-based approach instead of fixed-size allocation. The hypervisor specifies a minimum and maximum size range, and the balloon driver dynamically selects an optimal size within this range, allowing flexibility to avoid fragmentation while maintaining high utilization efficiency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic memory balloon inflation by allowing the balloon driver to adjust the amount of memory reclaimed based on current system conditions and fragmentation state. Instead of fixed allocation, the system dynamically determines the optimal memory size to reclaim within the specified range, adapting to changing memory patterns.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If contiguous guest memory is broken up to satisfy memory requests, then memory requests are fulfilled, but memory fragmentation increases

Engineering Contradiction:
Improvememory request fulfillmentVSAvoidmemory fragmentation
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent applies partial action by allowing the balloon to reclaim only the necessary amount of memory within the specified range, rather than breaking up entire contiguous blocks. The hypervisor specifies a range, and the system reclaims only what is needed, avoiding unnecessary fragmentation of guest memory.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the allocation parameter from fixed-size breaking to range-based selective reclamation. Instead of breaking contiguous memory into smaller fixed units, the system selectively reclaims memory within a minimum-maximum range, preserving contiguous blocks when possible.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If multiple portions of guest memory are allocated to satisfy memory requests, then memory requests are fulfilled, but contiguous free memory is depleted

Engineering Contradiction:
Improvememory request fulfillmentVSAvoidcontiguous free memory
Core Design Contradiction:
Adaptability or versatilityVSLength of stationary object

Solution Approach 1:

The patent applies preliminary action by having the hypervisor pre-specify a minimum and maximum size range for memory reclamation. This preliminary parameter setting guides the balloon driver to select optimal memory portions that fulfill requests while preserving contiguous free memory, avoiding the need to allocate multiple scattered portions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11550729B2Memory ballooning related memory allocation techniques for virtual machines
Publication Date: 2023.01.10 RED HAT INC
  • US11550729B2 patent drawing
  • US11550729B2 patent drawing
  • US11550729B2 patent drawing

AI summary

Systems and methods for encryption support for virtual machines. An example method may comprise maintaining, by a virtual machine running on a host computer system, a list of free memory pages, wherein each entry in the list references a set of memory pages that are contiguous in a guest address space; receiving, from a hypervisor of the host computer system, a request for guest memory to be made available to the hypervisor, wherein the request comprises a minimum size of guest memory requested and a maximum size of guest memory; and responsive to identifying, in the list of free memory pages, a set of contiguous guest memory pages that is greater than or equal to the minimum size of memory requested, and less than or equal to the maximum size of memory requested, releasing the set of contiguous guest memory pages to the hypervisor.