Hypervisor Pre-notification for Virtual Machine Page Fault Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing virtualization technologies face performance degradation due to frequent transitions between virtual machines and hypervisors, particularly caused by hardware events like page faults, which lead to resource-intensive operations and overhead, affecting efficiency and performance.

Innovation Solution

Implementing a pre-notification mechanism where the hypervisor periodically scans virtual machine memory, blocks access to inactive pages, and notifies the virtual machine to prevent page faults from transitioning control to the hypervisor, allowing the virtual machine to handle page faults and remap addresses before transitions occur, thereby reducing unnecessary transitions and overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the hypervisor handles page faults by loading data from backing store, then the virtual machine can access required memory pages, but frequent transitions between virtual machine and hypervisor occur causing performance degradation

Engineering Contradiction:
Improvememory access reliabilityVSAvoidvirtualization performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The hypervisor proactively identifies inactive memory pages and blocks them before page faults occur. By preemptively preventing access to inactive pages rather than reactively handling page faults, the system avoids the overhead of hypervisor transitions while maintaining memory access reliability for actually needed pages.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A communication channel is introduced as an intermediary between the hypervisor and virtual machine. The hypervisor writes blocked page information to this channel, and the virtual machine reads from it to prevent page faults, eliminating the need for direct hypervisor intervention and reducing transitions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the hypervisor blocks access to inactive memory pages, then page faults are prevented, but the complexity of memory management increases

Engineering Contradiction:
Improvepage fault reductionVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The virtual machine is empowered to read blocked page information from the communication channel and independently prevent page faults by adjusting its own memory access patterns. This self-service approach reduces the computational burden on the hypervisor and simplifies overall memory management complexity.

Inventive Principle:
Principle #25Self-service

3Productivity

If the virtual machine reads blocked page information from the communication channel, then transitions to the hypervisor are reduced, but the virtual machine must implement additional logic to handle the communication channel

Engineering Contradiction:
Improvetransition reductionVSAvoidvirtual machine logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The communication channel uses simple, lightweight data structures (such as basic memory buffers or registers) that are easy to implement and manipulate. These simple objects enable efficient information exchange without requiring complex protocols or data formats, minimizing the additional logic needed in the virtual machine.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS20230393874A1Efficient pagefaults for virtual machines
Publication Date: 2023.12.07 RED HAT INC
  • US20230393874A1 patent drawing
  • US20230393874A1 patent drawing
  • US20230393874A1 patent drawing

AI summary

Systems and methods for enabling efficient communication between the hypervisor and the virtual machine to reduce the transition events between the virtual machine and the hypervisor. An example method may include: identifying, by a hypervisor running on a host computer system, a guest memory page referenced by a guest memory page address in a guest memory space of a virtual machine managed by the hypervisor; making the guest memory page inaccessible by the virtual machine; notifying the virtual machine of the guest memory page address; and responsive to receiving, from the virtual machine, a page fault notification with respect to the guest memory page, mapping a host memory page to the guest memory page.