Interrupt Virtualization via IOMMU Remapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualization environments experience significantly higher interrupt processing latency compared to non-virtualized environments due to the interception and processing of interrupts by the Virtual Machine Manager (VMM), leading to performance issues.

Innovation Solution

A device interrupt manager is configured to receive and record interrupts targeted at a virtual processor within a guest, allowing the VMM to schedule or prioritize the virtual processor for execution, thereby reducing latency by handling interrupts more efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If interrupts are intercepted and processed by the VMM in virtualized environments, then virtual machine control and isolation are improved, but interrupt processing latency increases significantly

Engineering Contradiction:
Improvevirtual machine controlVSAvoidinterrupt processing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The interrupt processing function is segmented between hardware (IOMMU for interrupt remapping and direct delivery) and software (VMM for management). The IOMMU handles interrupt interception, remapping to virtual processor IDs, and direct delivery to appropriate vCPUs, while the VMM maintains control through configuration and monitoring capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The IOMMU acts as an intermediary device between peripheral devices and virtual processors. It receives interrupts from devices, performs remapping using data structures configured by the VMM, and directly delivers interrupts to the appropriate vCPUs without requiring VMM software intervention for each interrupt handling operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If software mechanisms are used for interrupt delivery in virtualized environments, then flexibility and control are improved, but processing speed decreases

Engineering Contradiction:
Improveinterrupt delivery flexibilityVSAvoidinterrupt delivery speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent replaces software-based interrupt delivery mechanisms with hardware-based mechanisms in the IOMMU. The IOMMU uses hardware data structures (interrupt remapping tables) and hardware operations (interrupt remapping and direct delivery) to achieve fast interrupt handling while maintaining the flexibility normally provided by software mechanisms.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Loss of time

If interrupts are directly delivered to virtual processors without VMM interception, then latency is reduced, but VMM control over virtual machines is weakened

Engineering Contradiction:
Improveinterrupt latencyVSAvoidVMM control
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The VMM performs preliminary configuration actions by setting up interrupt remapping data structures in the IOMMU before interrupts are delivered. The VMM configures the mapping between device interrupts and virtual processor IDs, and can monitor or modify these mappings as needed, maintaining control without interfering in real-time interrupt delivery.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8706941B2Interrupt virtualization
Publication Date: 2014.04.22 ADVANCED MICRO DEVICES INC
  • US8706941B2 patent drawing
  • US8706941B2 patent drawing
  • US8706941B2 patent drawing

AI summary

In an embodiment, a device interrupt manager may be configured to receive an interrupt from a device that is assigned to a guest. The device interrupt manager may be configured to transmit an operation targeted to a memory location in a system memory to record the interrupt for a virtual processor within the guest, wherein the interrupt is to be delivered to the targeted virtual processor. In an embodiment, a virtual machine manager may be configured to detect that an interrupt has been recorded by the device interrupt manager for a virtual processor that is not currently executing. The virtual machine manager may be configured to schedule the virtual processor for execution on a hardware processor, or may prioritize the virtual processor for scheduling, in response to the interrupt.