Skip to content

callstack: get an experiment analysis to show in the flamechart - #432

Open
arfio wants to merge 1 commit into
eclipse-tracecompass:masterfrom
arfio:fix-experiment-flamechart
Open

callstack: get an experiment analysis to show in the flamechart#432
arfio wants to merge 1 commit into
eclipse-tracecompass:masterfrom
arfio:fix-experiment-flamechart

Conversation

@arfio

@arfio arfio commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

What it does

The flame chart view does not display the experiment data provider if the call stack analysis applies to an experiment. This PR adds the capability

How to test

Open an experiment and run a callstack analysis with the "applies_experiment" of the extension set to true.

Follow-ups

The call to reset function names does not work if the analysis does not apply to an experiment. In this case, because the call is not part of the Data provider API, the composite data provider does not allow it.

Review checklist

  • As an author, I have thoroughly tested my changes and carefully followed the instructions in this template

Summary by CodeRabbit

  • Bug Fixes
    • Improved flame chart provider selection across available analysis modules.
    • Enhanced flame chart handling for individual traces and multi-trace experiments.
    • Preserved existing fallback behavior when providers are unavailable.
    • Improved data provider retrieval during time graph entry loading.

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 2b9d59df-ec68-4f59-9f2c-86937fdb7044

📥 Commits

Reviewing files that changed from the base of the PR and between ece521e and eef4851.

📒 Files selected for processing (3)
  • analysis/org.eclipse.tracecompass.analysis.profiling.core/src/org/eclipse/tracecompass/internal/analysis/profiling/core/instrumented/FlameChartDataProviderFactory.java
  • analysis/org.eclipse.tracecompass.analysis.profiling.ui/src/org/eclipse/tracecompass/internal/analysis/profiling/ui/FlameChartView.java
  • tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/BaseDataProviderTimeGraphView.java

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The change updates flame-chart provider resolution and time-graph entry-list construction. Provider lookup now uses analysis-module IDs and generic time-graph APIs. Flame-chart-specific function-name resets remain conditional on the provider type.

Changes

Flame-chart provider flow

Layer / File(s) Summary
Provider resolution
analysis/.../FlameChartDataProviderFactory.java
The factory searches analysis modules by secondary ID and accepts matching IFlameChartProvider implementations. Multi-trace experiments still use a composite provider.
Time-graph entry construction
analysis/.../FlameChartView.java, tmf/.../BaseDataProviderTimeGraphView.java
Both views use fetchOrCreateDataProvider. FlameChartView resets function names only for FlameChartDataProvider instances and skips trace building for null input.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to eef48

This localized change enables experiment callstack data to render in flame charts while preserving existing provider lookup behavior; no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately identifies the main change: enabling an experiment analysis to display in the flame chart.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant