Static Instrumentation Macros for Dynamic Probe Declaration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing system performance analysis tools, such as breakpoints and static probes, are either invasive and impractical for production systems or require specialized programming skills and complex declarations, making them difficult to use effectively.

Innovation Solution

A method of dynamically instrumenting computer systems using statically defined probes with indirect function calls and macro definitions, allowing for easy insertion and activation of probes without the need for kernel programming or elaborate declarations, enabling efficient monitoring of production systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If breakpoints are used to analyze computer system operations, then the ability to inspect application operation is improved, but the system operation is interrupted and productivity deteriorates

Engineering Contradiction:
Improveinspection capabilityVSAvoidsystem operation continuity
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-installs probe functions at specific locations in the target application during the build process. These probes are prepared in advance and can be activated without interrupting system operation, resolving the contradiction between inspection capability and operational continuity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces probe functions as intermediary components between the application and the analysis tool. These probes capture execution data without blocking the application flow, enabling inspection while maintaining system operation through the use of intermediate data collection mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If static probes are used to avoid interrupting system operation, then productivity is improved, but the need for special programming skills and kernel programming increases device complexity

Engineering Contradiction:
Improvesystem operation continuityVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses macro definitions that copy and expand probe function calls directly into the application source code. This copying mechanism allows probes to be integrated through simple macro invocations rather than requiring complex kernel programming, reducing the perceived complexity while maintaining static probe benefits.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent creates a universal probe mechanism that works across different application types and locations through standardized macro definitions. This multi-functional approach eliminates the need for specialized kernel programming knowledge, as the same macro-based probe system can be applied universally to various analysis needs.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Measurement precision

If known static probe tools like Dtrace are used, then system performance analysis capability is improved, but the requirement for elaborate declarations and special programming language increases device complexity

Engineering Contradiction:
Improveperformance analysis capabilityVSAvoiddeclaration complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent replaces the complex declaration-based probe definition system with a macro-based system that integrates directly into the application source code. This substitution eliminates the need for separate declaration languages and elaborate syntax, allowing performance analysis to be defined through familiar programming language constructs.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent merges the probe definition and application code into a single unified source file using macro expansions. This combining of probe specifications with the application logic eliminates the need for separate declaration files and complex cross-referencing, simplifying the overall system while maintaining full performance analysis capability.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8739135B2Static instrumentation macros for fast declaration free dynamic probes
Publication Date: 2014.05.27 RED HAT INC
  • US8739135B2 patent drawing
  • US8739135B2 patent drawing
  • US8739135B2 patent drawing

AI summary

Embodiments of the present invention provide a dynamic instrumentation system that uses statically defined probes. The probes may be defined using macro definitions. One or more libraries of macro definitions that are linked to static probes are provided in the computer system. Each probe is uniquely identified by a name having a well-defined prefix and a structured format. Probes may then be inserted at various locations and into the target software using standard macro calls. When the target software is compiled, the macro calls of each probe are expanded to calls to an existing function known as a probe handler function. Each probe handler function is identified in the computer system's symbol table with a unique symbol that corresponds to the name specified by the macro definition. When a probe is activated, the operating system kernel transfers control to an instrumentation kernel object. The instrumentation kernel object locates and runs the probe handler function to perform the actions requested for that probe.