Skip to content

Display perf_samples that doesn't have a callsite_id - #2943

Closed
haixiaosugoogle wants to merge 3 commits into
mainfrom
dev/haixiaosu/add_empty_sample
Closed

haixiaosugoogle wants to merge 3 commits into
mainfrom
dev/haixiaosu/add_empty_sample

Conversation

@haixiaosugoogle

Copy link
Copy Markdown
Contributor

Perf samples without callsite_ids are emitted when the perf_sample skips unwinding. However, these should still be displayed as we would be able to differentiate processes without perf_samples and processes with skipped perf_samples. It also gives us a more accurate accounting for the amount of work that the process is actually doing.

@github-actions

This comment was marked as off-topic.

@haixiaosugoogle
haixiaosugoogle requested review from a team and primiano and removed request for a team and primiano September 15, 2025 16:07
@rsavitski

Copy link
Copy Markdown
Member

As discussed offline:

  • Skipped samples will need an entirely different UI element, or users will be confused as to why there are tracks full of perf samples that show nothing when selected (especially in systemwide sampling).
  • I'm personally unconvinced that rendering skipped samples (effectively = thread X was running at time Y) is adding more signal than noise in most traces:
    • If you have scheduling information, then you already know which threads are running when.
    • If you are profiling a single process, then the fact that we do per-cpu profiling underneath is an implementation detail. Yet with this change, it would make the UI start showing tracks for /most/ processes on the system.

The types of traces where showing skipped samples is useful are when it's the only (loose) proxy for what's running on the device.

To me this still feels better as a UI command (entered on-demand via ctrl-shift-p), e.g. "render all skipped samples". So by default we do not pollute the UI with skipped samples, but people with a specific need to see them can run the command.

Let me get a second opinion within the team and get back to you.

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.

2 participants