Container Driver Page Sharing via Virtual Memory Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, the repeated loading of identical driver pages by multiple Containers leads to inefficient memory usage and increased load on the swapping subsystem, as each Container loads its own identical driver pages, causing memory shortages and performance issues.

Innovation Solution

A method and system for sharing common driver pages among Containers, where a dedicated system driver is installed to load and manage identical pages once, allowing multiple Containers to reference these shared pages, reducing memory usage and load on the swapping subsystem.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each Container loads its own driver pages, then driver isolation and reliability are maintained, but memory usage increases significantly and swapping subsystem load increases

Engineering Contradiction:
Improvedriver isolationVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges identical driver pages across multiple Containers by establishing a shared physical memory region. When a Container loads a driver, the system checks if the driver pages are identical to existing shared pages and redirects them to the common memory region, thereby combining multiple identical copies into a single shared resource while maintaining isolation through virtual address mapping

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared driver pages serve multiple Containers simultaneously, making the memory resource universal. The system enables any Container that needs a driver to access the same physical pages through virtual memory mapping, allowing one set of pages to perform the function of serving multiple Containers rather than requiring separate dedicated pages for each

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If each Container loads its own driver pages, then driver functionality is ensured, but the swapping subsystem experiences increased load

Engineering Contradiction:
Improvedriver functionalityVSAvoidswapping subsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent consolidates multiple identical driver page copies into a single shared physical memory region. When Containers sequentially load identical drivers, the system detects the duplication and redirects subsequent load requests to the existing shared pages, thereby merging redundant loading operations into a single action that reduces swapping subsystem workload

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If driver pages are made swappable to save memory, then memory efficiency improves, but performance deteriorates

Engineering Contradiction:
Improvememory efficiencyVSAvoiddriver access performance
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent merges identical driver pages into a single shared physical copy that is never swapped. By establishing shared pages at initialization and using copy-on-write semantics, the system eliminates the need for swapping while maintaining memory efficiency, as the shared pages remain in physical memory and only create copies when modification is required

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10713181B1Method and system for sharing driver pages
Publication Date: 2020.07.14 VIRTUOZZO INT GMBH
  • US10713181B1 patent drawing
  • US10713181B1 patent drawing
  • US10713181B1 patent drawing

AI summary

On a computer system having a processor, a single OS and a first instance of a system driver installed and performing system services, method for sharing driver pages among Containers, including instantiating a plurality of Containers that virtualize the OS, wherein the first instance is loaded from an image, and instantiating a second instance of the system driver upon request from Container for system services by: allocating virtual memory pages for the second instance and loading, from the image, the second instance into a physical memory; acquiring virtual addresses of identical pages of the first instance compared to the second instance; mapping the virtual addresses of the identical pages of the second instance to physical pages to which virtual addresses of the corresponding pages of the first instance are mapped, and protecting the physical pages from modification; and releasing physical memory occupied by the identical pages of the second instance.