VM Interrupt Routing Without VM Exit Using an Interrupt Table
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtual machine (VM) exits due to interrupts incur significant computing overhead, particularly in I/O intensive applications, as they require context switching between guest and hypervisor contexts.
Innovation Solution
A source processing unit detects interrupts destined for non-existent vCPUs within a virtual machine and routes them to a destination processing unit using an interrupt table configured by the hypervisor, avoiding VM exits by executing the interrupt procedure outside the virtual machine context.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If interrupts are handled by triggering VM exits to the hypervisor, then interrupts can be processed with full control, but computing overhead increases significantly
Solution Approach 1:
The patent introduces an interrupt table as an intermediary data structure that maps interrupt vectors to destination processing units. This allows interrupts to be routed directly to appropriate handlers without requiring VM exits to the hypervisor, thus maintaining control while reducing overhead. The interrupt table acts as a pre-configured lookup mechanism that enables direct interrupt handling paths.
Solution Approach 2:
The hypervisor performs preliminary configuration by populating the interrupt table with mappings between interrupt vectors and destination processing units before guest execution begins. This pre-configuration allows the source processing unit to handle interrupts directly during runtime without needing to exit the VM context, as all routing decisions are predetermined and stored in the interrupt table.
2Adaptability or versatility
If VM exits are triggered for every interrupt, then the hypervisor can manage all interrupt handling, but performance deteriorates in I/O intensive applications
Solution Approach 1:
The patent segments interrupt handling into two paths: critical interrupts that require hypervisor control and routine interrupts that can be handled directly by destination processing units. The interrupt table enables this segmentation by providing direct routing for routine interrupts while preserving hypervisor control paths for critical ones, thus improving performance without sacrificing necessary control.
Solution Approach 2:
The system dynamically routes interrupts based on pre-configured mappings in the interrupt table, allowing flexible destination assignment without static VM exit requirements. This dynamic routing capability enables the system to adapt interrupt handling to specific application needs while maintaining hypervisor oversight when necessary.
3Reliability
If context switching is performed for interrupt handling, then proper privilege management is maintained, but time is lost due to switching overhead
Solution Approach 1:
The interrupt table serves as an intermediary that preserves privilege management semantics without requiring actual context switching. By pre-configuring destination processing units and their associated privilege levels in the interrupt table, the system maintains proper privilege management through the lookup mechanism while avoiding the time cost of actual context switching operations.
Data Source
AI summary
One example described herein includes a source processing unit that can detect that guest software of a virtual machine has transmitted an interrupt to a virtual central processing unit (vCPU) identifier, where the vCPU identifier that does not match any vCPUs in the virtual machine. Based on the interrupt, the source processing unit can access an interrupt table that is associated with the virtual machine. The interrupt table can include an entry that maps the interrupt to a destination processing unit. Based on the entry in the interrupt table, the source processing unit can determine that the interrupt is to be transmitted to the destination processing unit. The source processing unit can then transmit the interrupt to the destination processing unit, without triggering an exit of the virtual machine on the source processing unit.


