Register Switch for Fault-Based VM Hypervisor Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with hardware virtualization, the page fault mechanism is overloaded to enable communication between virtual machines and hypervisors, leading to unintended results due to the lack of information about the exact instruction length, making it difficult to execute the same instruction without generating duplicate signals.

Innovation Solution

The technology uses an instruction referencing a modifiable register instead of a static memory location, allowing the hypervisor to update the register before re-executing the instruction, ensuring that the second execution accesses a different memory page, thus avoiding duplicate signals and simplifying the communication channel between virtual machines and hypervisors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the page fault mechanism is overloaded to enable communication between virtual machines and hypervisors, then communication capability is improved, but the system generates unintended results due to lack of instruction length information

Engineering Contradiction:
Improvecommunication capabilityVSAvoidsignal accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a register as an intermediary between the instruction and the memory location. Instead of directly accessing a static memory location, the instruction references a register that contains the memory location. This register acts as a mediator that can be updated by the hypervisor to change the target memory location without modifying the instruction itself, thereby enabling reliable communication while avoiding duplicate signals.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms the static memory location reference into a dynamic one by using a register that can be modified. The register's content changes between the first execution (causing the fault) and the second execution (accessing a different location). This dynamic adjustment allows the system to control the fault mechanism precisely, improving reliability while maintaining communication capability.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the same instruction is executed again after a page fault, then communication is established, but duplicate signals are generated without knowledge of instruction length

Engineering Contradiction:
Improvecommunication channelVSAvoidinstruction handling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The register serves as an intermediary that stores the memory location. The instruction remains simple and unchanged, referencing only the register. The hypervisor updates the register's content to point to a different memory location on the second execution. This approach simplifies instruction handling by eliminating the need for the CPU to know or decode instruction lengths, while still enabling communication through controlled duplicate executions.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If a static memory location is used in the instruction, then implementation is simpler, but the hypervisor cannot update the target location to avoid duplicate signals

Engineering Contradiction:
Improveimplementation simplicityVSAvoidlocation flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamics into the memory location reference by using a register instead of a static address. The register's content can be changed by the hypervisor between executions of the same instruction. This maintains implementation simplicity from the instruction's perspective (it still just references a register) while providing the flexibility needed to avoid duplicate signals by changing the target location on subsequent executions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11693722B2Fast memory mapped IO support by register switch
Publication Date: 2023.07.04 RED HAT INC
  • US11693722B2 patent drawing
  • US11693722B2 patent drawing
  • US11693722B2 patent drawing

AI summary

The technology disclosed herein enhances a fault-based communication channel between a virtual machine and a hypervisor. An example method may include: configuring, by a hypervisor, a first memory location to generate one or more faults when accessed by a virtual machine process, wherein the first memory location is mapped to a device and a second memory location is mapped to memory; detecting, by the hypervisor, a fault caused by a first execution of an instruction of the virtual machine process, wherein the instruction comprises a reference to a register comprising the first memory location; responsive to the detecting the fault, the hypervisor performing a computing task for the virtual machine process and updating the register to comprise the second memory location; and initiating, by the hypervisor, a second execution of the instruction of the virtual machine process, wherein the second execution of the instruction accesses the second memory location.