Light-weight Virtualization Contexts via Realm Switch Control Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CPU virtualization methods require expensive and computationally costly full VM context switches to reduce the attack surface of an operating system, which hampers high-performance computing due to frequent context switches needed to maintain security.

Innovation Solution

Implementing light-weight component context switches using realm switch control structures (RSCSs) that allow guest OS components to operate at the same privilege level without exiting the VM, enabling flexible protection models with minimal performance overhead by switching between component contexts within the same VM.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full VM context switches are used to reduce the attack surface, then security is improved, but system performance deteriorates due to expensive overheads

Engineering Contradiction:
ImprovesecurityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the VM context into multiple hierarchical levels: full VM context (for security boundaries) and light-weight component contexts (for frequent switches). This segmentation allows security-critical VM context switches to occur less frequently while enabling high-frequency component switches within the same VM, thus resolving the contradiction between security and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial context switching by introducing component contexts that switch only specific processor state elements (like CR3, EFER, STAR, etc.) without performing complete VM context switches. This partial action provides sufficient security for most operations while avoiding the full overhead of VM exits, thereby improving system performance while maintaining adequate security.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If frequent VM context switches are performed to maintain security boundaries, then attack surface reduction is improved, but computing bottleneck increases

Engineering Contradiction:
Improveattack surface reductionVSAvoidcontext switch overhead time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides context switching into two segments: secure VM context switches that establish security boundaries but occur infrequently, and fast component context switches that occur frequently but maintain boundaries through lighter mechanisms. This segmentation reduces the time loss associated with frequent full VM context switches while preserving security boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary setup by establishing VM context boundaries once, then enables subsequent fast component switches within that established boundary. The realm switch control structures (RSCSs) are pre-configured with necessary context information, allowing rapid switching without repeated full VM exit overhead, thus reducing time loss while maintaining security.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9946566B2Method and apparatus for light-weight virtualization contexts
Publication Date: 2018.04.17 INTEL CORP
  • US9946566B2 patent drawing
  • US9946566B2 patent drawing
  • US9946566B2 patent drawing

AI summary

A processor comprises a register to store a first pointer to a context data structure specifying a virtual machine context, the context data structure comprising a first field to store a second pointer to a plurality of realm switch control structures (RSCSs), and an execution unit comprising a logic circuit to execute a virtual machine (VM) according to the virtual machine context, wherein the VM comprises a guest operating system (OS) comprising a plurality of kernel components, and wherein each RSCS of the plurality of RSCSs specifies a respective component context associated with a respective kernel component of the plurality of kernel components, and execute a first kernel component of the plurality of kernel components using a first component context specified by a first RSCS of the plurality of RSCSs.