Hypervisor Memory Deduplication via Free Page Hint Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory deduplication techniques in hypervisors are inefficient due to high CPU overhead and processing time, as they require proportional comparisons to insert pages into a memory tree, which can be costly in terms of CPU cycles and cache pressure.

Innovation Solution

The hypervisor employs free page hints to determine if pages are used or unused by the guest OS, allowing it to skip tree insertion and comparison for unused pages, thereby deduplicating them without the need for extensive page matching, reducing CPU overhead and speeding up the deduplication process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the hypervisor inserts every unchanged page into the memory tree for deduplication comparison, then deduplication accuracy is improved, but CPU overhead and processing time increase significantly

Engineering Contradiction:
Improvededuplication accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The hypervisor performs preliminary actions by checking free page hints before inserting pages into the memory tree. This preliminary check identifies pages that are unlikely to be deduplicated, allowing the system to skip the expensive tree insertion and comparison operations for those pages, thus improving processing speed without significantly compromising deduplication accuracy for pages that are actually duplicated

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and removes pages that are marked as free or unused from the deduplication process entirely. By taking out these pages before they enter the memory tree, the system avoids unnecessary CPU cycles and cache pressure associated with inserting and comparing pages that will not contribute to deduplication, thereby resolving the contradiction between thoroughness and efficiency

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If the hypervisor compares every inserted page with all other pages in the tree, then deduplication completeness is improved, but CPU cycles and cache pressure increase

Engineering Contradiction:
Improvededuplication completenessVSAvoidCPU cycle consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The hypervisor extracts pages marked as free or unused from the comparison process before they are inserted into the memory tree. This extraction eliminates the need to perform expensive page-by-page comparisons for pages that will not be deduplicated, significantly reducing CPU cycle consumption and cache pressure while maintaining completeness for pages that are actually duplicated

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs a preliminary action by checking free page hints before inserting pages into the memory tree. This preliminary filtering identifies pages that should be excluded from comparison, allowing the hypervisor to skip unnecessary CPU-intensive comparison operations and reduce overall energy consumption while maintaining deduplication completeness for relevant pages

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11016668B2Hypervisor deduplication page comparison speedup
Publication Date: 2021.05.25 RED HAT INC
  • US11016668B2 patent drawing
  • US11016668B2 patent drawing
  • US11016668B2 patent drawing

AI summary

A hypervisor deduplcation system includes a memory, a processor in communication with the memory, and a hypervisor executing on the processor. The hypervisor is configured to scan a first page, detect that the first page is an unchanged page, check a first free page hint, and insert the unchanged page into a tree. Responsive to inserting the unchanged page into the tree, the hypervisor compares the unchanged page to other pages in the tree and determine a status of the unchanged page as matching one of the other pages or mismatching the other pages in the tree. Responsive to determining the status of the page as matching another page, the hypervisor deduplicates the unchanged page. Additionally, the hypervisor is configured to scan a second page of the memory, check a second free page hint, deduplicate the second page if the free page hint indicates the page is unused.