Mode-Dependent Virtual Machine Function Code Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtualization systems face challenges in managing virtual machine function code execution across different execution modes, particularly in 32-bit and 64-bit modes, due to issues like malicious guest modifications, register management, and interrupt handling, which affect system efficiency and security.

Innovation Solution

The hypervisor detects transitions between execution modes and enables or disables VM functions by writing specific code into memory buffers or modifying Extended Page Table mappings to ensure VM functions execute correctly in either 32-bit or 64-bit modes, notifying guests of availability or unavailability accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If VM functions are enabled to execute in guest OS without VM exit, then execution efficiency is improved, but system security and control are worsened due to potential malicious modifications and privileged resource access

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsystem security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism where the hypervisor provides mode-dependent function code to the guest OS. This intermediary layer allows VM functions to execute efficiently in the guest OS context while the hypervisor maintains security control by providing pre-approved function code that prevents malicious modifications and unauthorized privileged resource access.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the system supports multiple execution modes (32-bit and 64-bit), then adaptability is improved, but system complexity is worsened due to managing different code paths and register states

Engineering Contradiction:
Improveexecution mode supportVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic adaptation by detecting the current execution mode (32-bit or 64-bit) and providing appropriate mode-dependent function code accordingly. The system dynamically adjusts the provided function code based on the guest OS execution mode, allowing multi-mode support without requiring complex static configuration for each mode.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by providing different function code implementations tailored to specific execution modes. The hypervisor analyzes the execution mode and provides optimized function code specifically suited for that mode, ensuring each mode receives appropriate handling rather than a generic one-size-fits-all approach.

Inventive Principle:
Principle #3Local quality

3Reliability

If VM functions are disabled to maintain security, then system security is improved, but execution efficiency is worsened due to frequent VM exits

Engineering Contradiction:
Improvesystem securityVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by having the hypervisor pre-provide mode-dependent function code to the guest OS before execution needs occur. This advance preparation allows VM functions to execute efficiently in the guest OS without frequent VM exits, while the hypervisor maintains security control through the preliminary provision of approved function code.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9778945B2Providing mode-dependent virtual machine function code
Publication Date: 2017.10.03 RED HAT ISRAEL
  • US9778945B2 patent drawing
  • US9778945B2 patent drawing
  • US9778945B2 patent drawing

AI summary

Systems and methods for providing mode-dependent virtual machine (VM) function code. An example method may comprise: detecting, by a hypervisor executing by a processing device of a host computer system, a transition to a first execution mode by a guest operating system (OS) executing on the host computer system, wherein the first execution mode is characterized by at least one of: a first physical address size or a first general purpose register size; and responsive to the detecting, enabling a virtual machine (VM) function to be executed by the guest OS in the first execution mode.