VM Checkpoint Portability Through Selective JIT Code Decompilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine-based applications face challenges in seamless migration across computing systems with dissimilar CPU-specific features, leading to potential performance compromises and fatal errors during restoration.

Innovation Solution

A method and system that tracks non-portable units of applications using CPU-specific features, designates them as non-entrant compiled code, and decompiles stack frames to ensure compatibility across systems, allowing dynamic recompilation based on destination system capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the application is JIT compiled to utilize CPU-specific features of the source system, then performance is optimized, but portability to destination systems with different CPU features is compromised

Engineering Contradiction:
Improveapplication performanceVSAvoidportability of checkpoint
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The application code is divided into portable and non-portable units based on CPU-specific feature dependencies. The JIT compiler identifies and separates code segments that rely on source system CPU features from those that are universally compatible, allowing selective handling during checkpoint migration.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis of JIT-compiled code to identify non-portable units before checkpoint creation. Stack frames associated with non-portable units are decompiled in advance, and these units are designated as non-entrant compiled code, preparing the application for successful restoration on destination systems with different CPU features.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If non-portable units are executed on the destination system, then performance optimization is maintained, but fatal errors may occur due to incompatible CPU features

Engineering Contradiction:
Improveapplication performanceVSAvoidrestoration success
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies preliminary anti-action by decompiling stack frames associated with non-portable units and designating them as non-entrant compiled code before checkpoint restoration. This prevents execution of code that would cause fatal errors on destination systems with incompatible CPU features, while still allowing the application to function using portable code paths.

Inventive Principle:
Principle #9Preliminary anti-action

3Adaptability or versatility

If all code is decompiled to ensure portability, then compatibility across systems is achieved, but performance optimization from JIT compilation is lost

Engineering Contradiction:
Improveportability of checkpointVSAvoidapplication performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system applies local quality by treating different code units differently based on their portability characteristics. Portable units retain JIT compilation for performance optimization, while only non-portable units are decompiled and designated as non-entrant. This selective approach maintains performance where possible while ensuring portability where needed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12504984B2Portability of virtual machine checkpoints without affecting the performance of the application
Publication Date: 2025.12.23 RED HAT LLC
  • US12504984B2 patent drawing
  • US12504984B2 patent drawing
  • US12504984B2 patent drawing

AI summary

Systems and methods are described for improving portability of virtual machine checkpoints without affecting system performance. In an example, a method includes determining, by a source computing system having a processor, via a virtual machine, and based on a runtime of an application on the virtual machine, one or more units of the application to compile as one or more non-portable units of the application; designating, as a non-entrant compiled code, the one or more non-portable units of the application, wherein the designation prevents execution of the one or more non-portable units; decompiling, by the source computing system, one or more stack frames associated with the one or more non-portable units of the application; sending, by the source computing system to a destination computing system, a checkpoint for the application; restoring, by the destination computing system via the virtual machine, from the checkpoint for the application, the runtime of the application.