VMFUNC Instruction for VMM Service Invocation Without VM Exit

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The inefficiency in existing virtualization systems arises from the need for a VM exit every time guest software invokes a VMM service, which involves significant register content movement and context/state switching between the VM and VMM processes.

Innovation Solution

Embedding VMM-configured services within the CPU, allowing guest software to invoke these services using the VMFUNC instruction without requiring a VM exit, by configuring and enabling services directly within the CPU's private control registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If guest software invokes a VMM service using traditional VM exit mechanism, then the service can be executed by the VMM, but the CPU must perform context switching between VM and VMM processes which reduces efficiency

Engineering Contradiction:
Improveservice execution capabilityVSAvoidservice invocation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts specific VMM service functions and embeds them directly into the CPU instruction set architecture through new instructions (e.g., VMFUNC, VMPTRLD). This allows guest software to invoke these services without triggering a full VM exit to the VMM, thereby maintaining service execution capability while eliminating the context switching overhead that reduces efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If VM exit is performed for every VMM service invocation, then the VMM can coordinate resource allocation, but significant register content movement and context/state switching occurs which increases overhead

Engineering Contradiction:
ImproveVMM resource coordination capabilityVSAvoidcontext switching time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the VMM service invocation process by creating a hybrid mechanism: frequently used services are handled by CPU instructions that operate within the VM context, while less frequent or more complex services still use VM exit. This segmentation eliminates unnecessary context switching for routine operations while preserving VMM coordination capability for resource management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by having the VMM pre-configure CPU state and data structures (such as shadow page tables, EPT parameters, and other virtualization metadata) during VM entry or setup phases. This preliminary configuration enables subsequent service invocations to be handled efficiently by CPU instructions without requiring repeated context switching to the VMM.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10678575B2Instruction-set support for invocation of VMM-configured services without VMM intervention
Publication Date: 2020.06.09 INTEL CORP
  • US10678575B2 patent drawing
  • US10678575B2 patent drawing
  • US10678575B2 patent drawing

AI summary

A processing core comprising instruction execution logic circuitry and register space. The register space to be loaded from a VMCS, commensurate with a VM entry, with information indicating whether a service provided by the processing core on behalf of the VMM is enabled. The instruction execution logic to, in response to guest software invoking an instruction: refer to the register space to confirm that the service has been enabled, and, refer to second register space or memory space to fetch input parameters for said service written by said guest software.