Virtualization Interrupt Vector Allocation Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with virtualization functions, the limited number of available host-side interrupt vectors leads to a shortage when managing a large number of I/O devices, resulting in increased overhead during interrupt processing due to the need to access interrupt cause registers, which degrades system performance.

Innovation Solution

The virtualization function module dynamically adjusts the allocation between shared and unique interrupt vectors based on statistical analysis, optimizing the allocation of host-side interrupt vectors to guest-side interrupt vectors, thereby minimizing access overhead and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the virtualization function module sets the same host-side interrupt vector to multiple guest-side interrupt vectors to handle a large number of I/O devices, then the system can support more I/O devices, but processing overhead increases due to accessing the interrupt cause register

Engineering Contradiction:
Improvenumber of I/O devicesVSAvoidprocessing overhead
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary classification of interrupt vectors into shared and unique categories. The interrupt vector management unit pre-configures which host-side interrupt vectors are shared among multiple guest-side interrupt vectors and which are unique, allowing the system to support more I/O devices while minimizing runtime overhead by avoiding unnecessary interrupt cause register accesses for unique vectors

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The interrupt vector space is segmented into shared interrupt vectors and unique interrupt vectors. This segmentation allows the system to differentiate between interrupt vectors that require interrupt cause register access (shared) and those that don't (unique), thereby reducing overall processing overhead while supporting a large number of I/O devices

Inventive Principle:
Principle #1Segmentation

2Loss of time

If the virtualization function module allocates unique host-side interrupt vectors to each I/O device, then processing overhead is minimized, but the system cannot support a large number of I/O devices due to limited interrupt vectors

Engineering Contradiction:
Improveprocessing overheadVSAvoidnumber of I/O devices
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

Host-side interrupt vectors are given multi-functionality by allowing a single host-side interrupt vector to serve as a shared interrupt vector for multiple guest-side interrupt vectors. This enables the system to support more I/O devices than the number of available host-side interrupt vectors, resolving the contradiction between limited vector resources and the need to support numerous devices

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If the virtualization function module dynamically changes interrupt vector allocation, then system performance is optimized, but the complexity of interrupt vector management increases

Engineering Contradiction:
Improvesystem performanceVSAvoidinterrupt vector management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The interrupt vector management unit automatically performs dynamic allocation and classification of interrupt vectors without requiring manual intervention. The system self-adjusts the allocation of shared and unique interrupt vectors based on system state, optimizing performance while keeping the management complexity hidden from users and applications

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10042790B2Computer and method with interrupt vector management
Publication Date: 2018.08.07 HITACHI VANTARA LTD

AI summary

A computer, on which operating systems run, the computer comprising a virtualization function module configured to manage virtual computers. A operating system is configured to run on each of the virtual computers. The virtualization function module includes an interrupt controller. The interrupt controller is configured to hold vector information for managing host-side interrupt vectors, and interrupt vector allocation information for managing allocation of the host-side interrupt vectors to the guest-side interrupt vectors that are set by the operating systems. The virtualization function module is configured to analyze a state of allocation of the host-side interrupt vectors to the guest-side interrupt vectors, and change the allocation of the host-side interrupt vectors to the guest-side interrupt vectors based on a result of the analysis.