Call Stack Inference via Minimal Fingerprint Profiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Capturing a call stack in CPU architectures like ARM is time-consuming, impacting program behavior and reducing sample frequency, necessitating an efficient method to infer call stacks from minimal data.

Innovation Solution

Infer call stacks using a database of previously captured call stacks and minimal fingerprint identifiers such as stack depth size, CPU core, and thread ID, allowing for the recording of these identifiers during profiling to reconstruct the corresponding call stack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If call stack is captured directly during profiling, then complete call stack information is obtained, but profiling time increases and sample frequency decreases

Engineering Contradiction:
Improvecall stack information completenessVSAvoidsampling frequency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent extracts only the essential fingerprint identifiers (stack depth size, CPU core, thread ID) from the complete call stack data, storing these minimal characteristics instead of the full call stack. This extraction principle resolves the contradiction by capturing enough information to identify call stacks (70-95% accuracy) while dramatically reducing the data burden and enabling higher sampling frequencies.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a database of previously captured call stacks with their fingerprint identifiers, then uses this database to match and infer call stacks during profiling. Instead of capturing complete call stacks in real-time, the system copies and compares fingerprint patterns from the database, achieving high accuracy inference without the overhead of full call stack capture.

Inventive Principle:
Principle #26Copying

2Measurement precision

If call stack is captured directly during profiling, then accurate program behavior analysis is achieved, but program behavior is adversely affected

Engineering Contradiction:
Improveprogram behavior analysis accuracyVSAvoidprogram behavior integrity
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent removes the intrusive element of full call stack capture and retains only the essential fingerprint identifiers. This extraction maintains measurement precision for program behavior analysis while minimizing interference with program execution, thus preserving program behavior integrity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by capturing only the necessary fingerprint information (stack depth, CPU core, thread ID) rather than the complete call stack. This partial capture is sufficient to achieve 70-95% call stack inference accuracy while avoiding the adverse effects of full call stack capture on program behavior.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If minimal fingerprint data is recorded instead of complete call stack, then data size is reduced and sampling capacity increases, but call stack inference accuracy decreases

Engineering Contradiction:
Improveprofile data volumeVSAvoidcall stack reconstruction accuracy
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent changes the parameters being recorded from complete call stack information to specific fingerprint parameters (stack depth size, CPU core, thread ID). This parameter transformation reduces data volume significantly while maintaining sufficient information for 70-95% call stack inference accuracy through database matching.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10169219B2System and method to infer call stacks from minimal sampled profile data
Publication Date: 2019.01.01 NINTENDO CO LTD
  • US10169219B2 patent drawing
  • US10169219B2 patent drawing
  • US10169219B2 patent drawing

AI summary

Methods and systems for inferring call stacks in a program, such as a video game or simulation program, are described herein. The call stack data can be inferred using a database of previously captured call stacks along with a minimal set of identifiers that fingerprint each call stack. If just the minimal fingerprint can be captured during a subsequent profile, then the corresponding call stack can be inferred.