Hypervisor Register Stack Covering for Nested Fault Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with multiple operating systems, handling interruptions and faults becomes complex due to different privilege levels, leading to potential system instability and unaddressed corner cases, especially when dealing with simultaneous faults and nested register stack errors.

Innovation Solution

A method where interruptions are received by a hypervisor, which sends them to the operating system for handling, and if the register stack is faulty, generates another interruption to the hypervisor to cover it, allowing the OS to process faults without immediate restoration of the register stack, ensuring proper fault handling and execution resumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the operating system immediately restores the register stack when a fault occurs, then the fault handling appears simple and direct, but this causes loss of interruption information and prevents proper handling of nested faults and corner cases

Engineering Contradiction:
Improvefault handling simplicityVSAvoidfault handling completeness
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The hypervisor performs preliminary actions by covering the register stack before the operating system handles the fault. This prevents the operating system from incorrectly restoring the register stack during fault handling, ensuring that fault information is preserved and can be properly analyzed. The register stack is covered (marked as invalid) in advance so that even if the operating system attempts restoration, the faulty state remains detectable.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hypervisor acts as an intermediary between the processor fault mechanism and the operating system. When a register stack fault occurs, the hypervisor intercepts the fault, covers the register stack, and then delivers a controlled interruption to the operating system. This intermediary role ensures that the operating system receives fault information without directly accessing the potentially corrupted register stack, preventing information loss while maintaining system reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the hypervisor covers the register stack before sending interruption to the operating system, then fault information is preserved for proper handling, but this adds complexity to the interruption delivery mechanism

Engineering Contradiction:
Improvefault information preservationVSAvoidinterruption delivery complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The fault handling process is segmented into distinct phases: (1) The hypervisor receives the initial fault and covers the register stack, (2) The hypervisor delivers a controlled interruption to the operating system with preserved fault information, (3) The operating system handles the fault without directly accessing the covered register stack, and (4) The hypervisor restores the register stack after fault handling. This segmentation allows each component to perform its function reliably without unnecessary complexity in the overall system.

Inventive Principle:
Principle #1Segmentation

3Reliability

If multiple simultaneous faults occur at different privilege levels, then system stability is challenged, but proper prioritization and handling of these nested faults improves overall system reliability

Engineering Contradiction:
Improvesystem stability under fault conditionsVSAvoidnested fault handling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements nested fault handling where the hypervisor (higher privilege level) and operating system (lower privilege level) can both be involved in handling faults simultaneously. When a fault occurs at the hypervisor level, it can cover the register stack and deliver an interruption to the operating system, which may also have faults to handle. This nested structure allows proper prioritization where higher-level faults are handled first, ensuring system stability even when multiple faults occur simultaneously at different privilege levels.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS7363536B1Delivery of an interruption to an operating system
Publication Date: 2008.04.22 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7363536B1 patent drawing
  • US7363536B1 patent drawing
  • US7363536B1 patent drawing

AI summary

One embodiment of the invention is a method for handling an interruption during execution of an application on a computer system that uses a register stack, the method comprising receiving the interruption by a hypervisor, sending the interruption to an operating system for handling; if the register stack has a fault, then generating, by the operating system, another interruption that is delivered to the hypervisor; after receiving the another interruption, covering, by the hypervisor, the register stack; after covering the register stack, sending the interruption to the operating system for handling; and after handling, returning to execution of the application.