Trampoline Page Interrupt Handling in Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtual machine systems lack effective protection mechanisms against guest interrupts, which can lead to unintended exits to the hypervisor and resource inefficiencies.

Innovation Solution

The implementation of trampoline pages with specific instructions to configure access privileges and clear interrupt flags, allowing secure execution of protected virtual machine functions by switching between views and disabling interrupts to prevent full exits during protected function execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If guest interrupts are allowed during virtual machine function execution, then guest operating system responsiveness is improved, but security protection and resource management deteriorate due to unintended hypervisor exits

Engineering Contradiction:
Improveguest operating system responsivenessVSAvoidsecurity protection
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-configuring trampoline pages with specific instruction sequences that automatically clear interrupt flags and switch to protected views before executing sensitive virtual machine functions. This preliminary setup ensures that even if interrupts are enabled, they cannot trigger unwanted hypervisor exits during critical operations, thus maintaining security while allowing guest OS responsiveness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If interrupt flags are cleared to prevent unintended hypervisor exits, then security and resource management are improved, but guest operating system functionality deteriorates

Engineering Contradiction:
Improvesecurity protectionVSAvoidguest operating system functionality
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies local quality by implementing view-specific interrupt handling: in trampoline views, interrupt flags are cleared to prevent unintended hypervisor exits during protected function execution, while in normal guest views, interrupt handling remains fully functional. This localized approach ensures security where needed without compromising overall guest OS functionality.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic interrupt flag management that changes based on the current execution context. The interrupt flags are conditionally cleared only when executing specific instructions on trampoline pages during view transitions, and restored when returning to normal guest execution. This dynamic approach maintains both security and guest OS functionality.

Inventive Principle:
Principle #15Dynamics

3Reliability

If trampoline pages with view switching instructions are implemented, then security against guest interrupts is improved, but device complexity increases

Engineering Contradiction:
Improvesecurity protectionVSAvoidvirtual machine structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the virtual machine execution environment into distinct views (trampoline view and protected view) with separate page table configurations. Trampoline pages are segmented as special-purpose code pages that handle view transitions, while protected pages contain sensitive functions. This segmentation provides clear security boundaries without requiring complete restructuring of the virtual machine architecture.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9880871B2Protection from guest interrupts in a virtual machine function
Publication Date: 2018.01.30 RED HAT ISRAEL
  • US9880871B2 patent drawing
  • US9880871B2 patent drawing
  • US9880871B2 patent drawing

AI summary

An example method for secure virtual machine access to a protected virtual machine function includes storing a first virtual machine function instruction, which is executable to configure access privileges of a guest according to a trampoline view, as a last instruction on a first trampoline page. The method also includes storing a clear interrupt flag instruction as a first instruction on a second trampoline page. The method further includes storing a second virtual machine function instruction, which is executable to configure access privileges of the guest according to a protected view, as a last instruction on the second trampoline page. The method also includes in response to detecting an extended page fault violation while the trampoline view is active, clearing the interrupt flag of the guest and entering execution on an instruction following the clear interrupt flag instruction on the second trampoline page.