Hypervisor Pre-notification for Virtual Machine Page Fault Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If the hypervisor blocks access to inactive memory pages, then page faults are prevented, but the complexity of memory management increases
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.
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
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.
Data Source
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.


