Processor Trace Pause Mechanism for Selective Code Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor tracing methods generate excessive data, making it costly and inefficient to analyze software execution, especially when tracing privileged software, as they require system calls from protected domains, limiting the ability to target specific code sections for debugging and performance analysis.

Innovation Solution

Introducing new user-level instructions that allow selective tracing by enabling applications in less protected domains to pause and resume processor tracing, reducing overhead and enabling precise targeting of code sections for tracing, while preventing misuse through controlled access to trace settings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If processor tracing is enabled to capture detailed software execution information, then debugging and analysis capability is improved, but storage requirements and processing time increase significantly

Engineering Contradiction:
Improvesoftware execution analysis capabilityVSAvoidtrace data volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent segments the continuous trace data stream by identifying and separating basic blocks of code. Each basic block is represented by a compact record containing only essential information (block identifier, start address, instruction count) rather than storing every individual instruction execution. This segmentation reduces the overall trace data volume while preserving the structural information needed for analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and stores only the critical structural information about code execution paths, removing redundant details. By capturing block-level transitions and control flow information rather than complete instruction-level traces, the system extracts the essential execution pattern while eliminating excessive data that would consume storage and processing resources.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If processor tracing is configured from protected domain (ring 0), then security is maintained, but system call overhead increases and accessibility is reduced

Engineering Contradiction:
ImprovesecurityVSAvoidtrace configuration accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary mechanism where the operating system kernel acts as a mediator between user-space applications and the hardware trace infrastructure. The kernel provides controlled access to trace configuration through system calls, allowing user applications to request tracing without directly accessing protected hardware registers. This maintains security boundaries while enabling practical trace configuration from user space.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements self-service capabilities where the tracing system automatically manages configuration and execution based on pre-defined policies. Once trace policies are established, the system autonomously enables/disables tracing for specific basic blocks without requiring continuous user intervention or repeated system calls, reducing operational overhead while maintaining security through policy-based access control.

Inventive Principle:
Principle #25Self-service

3Loss of information

If continuous processor tracing is performed, then complete execution information is captured, but analysis time and computational resources increase

Engineering Contradiction:
Improveexecution information completenessVSAvoidtrace processing time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of trace data during the tracing phase by structuring records to represent basic blocks and their transitions. This preliminary structuring occurs at the point of data generation, so when analysis is needed, the data is already in a processed, organized format that reduces the computational burden of subsequent analysis operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies local quality by providing different levels of trace detail for different analysis needs. The trace system captures complete execution information at the basic block level, which provides sufficient detail for most analysis purposes without the overhead of full instruction-level tracing. This localized optimization maintains information completeness where needed while reducing overall data volume.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11960375B2Apparatus and method for pausing processor trace for efficient analysis
Publication Date: 2024.04.16 INTEL CORP
  • US11960375B2 patent drawing
  • US11960375B2 patent drawing
  • US11960375B2 patent drawing

AI summary

Processor trace systems and methods are described. For example, one embodiment comprises executing instrumented code by a compiler, the instrumented code including at least one call to un-instrumented code. The compiler can determine the at least one call to un-instrumented code is a next call to be executed. A resume tracing instruction can be inserted into the instrumented code prior to the at least one call to the un-instrumented code. The resume tracing instruction can be executed to selectively add processor tracing to the at least one call to the un-instrumented code, and the at least one call to the un-instrumented code can be executed.