Anonymous Memory Page Sharing for Virtual Machine Overhead Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized systems, sharing memory pages between multiple virtual machines is challenging due to the need for data coherency and the overhead of maintaining multiple copies of identical memory pages, which can lead to increased memory usage and complexity in managing shared resources.
Innovation Solution
A method and system for sharing memory pages where candidate pages are identified, hashed, and matched, with an anonymous memory page created to share identical content among multiple virtual machines, reducing memory overhead by exposing a single shared page to multiple VMs, and ensuring data coherency through host-managed memory and I/O operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple copies of identical memory pages are maintained for each virtual machine, then data coherency is ensured, but memory overhead increases
Solution Approach 1:
The patent merges identical memory pages from multiple virtual machines into a single shared physical memory page. The hypervisor identifies pages with identical content across different VMs and consolidates them, allowing multiple VMs to reference the same physical memory page through different virtual addresses. This eliminates redundant memory copies while maintaining isolation and coherency through controlled access mechanisms.
Solution Approach 2:
The patent creates a universal memory page that serves multiple virtual machines simultaneously. A single physical memory page is made accessible to multiple VMs that have identical content requirements, allowing the same memory resource to fulfill the needs of multiple consumers. This multi-functional approach reduces overall memory consumption while maintaining the functionality required by each individual VM.
2Quantity of substance
If memory pages are shared among virtual machines, then memory overhead is reduced, but complexity in managing shared resources increases
Solution Approach 1:
The hypervisor acts as an intermediary layer between virtual machines and shared memory pages. It manages the mapping between virtual addresses in different VMs and the shared physical memory page, handling access requests, coherence protocols, and conflict resolution. This intermediary approach abstracts the complexity of shared resource management from individual VMs while enabling efficient memory sharing.
Solution Approach 2:
The patent changes the memory management parameters by introducing shared page tables and modifying address translation mechanisms. Instead of traditional one-to-one mapping between virtual and physical memory, the system implements many-to-one mapping for shared pages, with dynamic control over access permissions and coherence states. This parameter change enables automated management of shared resources.
3Productivity
If identical memory pages are shared among virtual machines, then memory efficiency is enhanced, but data integrity maintenance becomes more challenging
Solution Approach 1:
The patent implements dynamic memory sharing where the sharing state of memory pages is not fixed but can change based on access patterns and coherence requirements. The system dynamically identifies candidate pages for sharing, establishes sharing relationships, and can terminate sharing when integrity concerns arise. This dynamic approach allows the system to adapt to changing conditions while maintaining both efficiency and integrity.
Solution Approach 2:
The system incorporates feedback mechanisms that monitor access patterns, modification states, and coherence violations of shared memory pages. When a VM modifies a shared page or integrity issues are detected, the feedback loop triggers appropriate actions such as breaking the sharing relationship, creating private copies, or coordinating modifications across VMs. This feedback ensures data integrity while allowing efficient sharing during stable conditions.
Data Source
AI summary
Methods and systems for sharing memory pages in virtual machines are described. Guest memory pages are identified as candidate memory pages. The candidate memory pages are hashed and the hash results of the candidate memory pages are compared. A determination is made on whether a hash match exists between a first candidate memory page and a second candidate memory page. If it is determined that a hash match exists, an anonymous memory page that includes the information of candidate memory pages is created and shared. As a result, embodiments effectively reduce memory overheads by, in one example, exposing a single anonymous memory page to multiple virtual machines.


