Dynamic Runtime Instrumentation for Memory Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Instrumenting a program can lead to performance degradation due to unnecessary instrumentation hooks, especially when the same memory operations repeatedly report no errors, causing run-time overhead and slowing down the program.

Innovation Solution

Implementing dependent dynamic hooks that overlay instructions with a 'tailer' section for instrumentation, where only the first memory operation is initially instrumented, and additional operations are hooked only if an error is detected, reducing the number of instrumentation hooks and enhancing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If instrumentation hooks are added to all memory operations, then error detection capability is improved, but program execution speed deteriorates

Engineering Contradiction:
Improveerror detection capabilityVSAvoidprogram execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The instrumentation system dynamically adjusts the level of monitoring based on detected errors. When an error is detected in a memory operation sequence, instrumentation hooks are added to subsequent operations in that sequence. When no errors are detected, hooks are removed. This dynamic adaptation resolves the contradiction by having high monitoring only when necessary for error detection while maintaining fast execution during normal operation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Instead of uniformly instrumenting all memory operations throughout the program, the system applies instrumentation locally only to specific sequences where errors have been detected. This localized approach ensures that error detection capability is enhanced only where needed, while the majority of the program continues to execute without instrumentation overhead, thus resolving the speed-reliability tradeoff.

Inventive Principle:
Principle #3Local quality

2Reliability

If instrumentation hooks are added to monitor memory operations, then error diagnosis capability is improved, but run-time overhead increases

Engineering Contradiction:
Improveerror diagnosis capabilityVSAvoidrun-time overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements periodic action by initially instrumenting only the first memory operation in a sequence to detect errors. If an error is detected, then subsequent operations in the sequence are instrumented. If no error is detected, instrumentation is removed. This periodic re-evaluation and conditional instrumentation reduces run-time overhead while maintaining error diagnosis capability when needed.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system applies partial action by instrumenting only the necessary portion of memory operations - specifically, only the first operation in a sequence initially, and only subsequent operations if errors are detected. This partial instrumentation approach provides sufficient error diagnosis capability without the excessive overhead of instrumenting every single memory operation throughout the program.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the same memory operations are repeatedly instrumented, then monitoring completeness is improved, but performance degradation increases

Engineering Contradiction:
Improvemonitoring completenessVSAvoidprogram performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system discards instrumentation hooks from memory operations that have been determined to be error-free. After the first memory operation in a sequence is instrumented and executes without error, the system recovers performance by removing hooks from subsequent operations in that sequence. This discarding of unnecessary instrumentation maintains monitoring completeness for error cases while recovering program performance for normal operation.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The instrumentation configuration is made dynamic rather than static. The system continuously evaluates whether instrumentation is needed and adjusts the presence of hooks accordingly. This dynamic approach ensures that monitoring completeness is maintained when errors occur while minimizing performance degradation during normal error-free execution by removing redundant instrumentation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10599554B2Dynamic instrumentation based on detected errors
Publication Date: 2020.03.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10599554B2 patent drawing
  • US10599554B2 patent drawing
  • US10599554B2 patent drawing

AI summary

In an approach for dynamically instrumenting a program at runtime, a processor identifies a sequence of memory related operations from an instruction stream, wherein the sequence includes at least a first memory related operation and a second memory related operation. A processor instruments the first memory related operation. A processor detects an error at the first memory related operation based on the instrumentation of the first memory related operation. A processor, responsive to detecting the error at the first memory related operation, instruments at least the second memory related operation.