mgradwohl / mgradwohl/tasksmack

[Perf][Tooling] analyze-etw.ps1 silently tolerates lost events and uses inconsistent denominators

Open
#873 0 comments 0 reactions 0 assignees View on GitHub
performance testing tooling windows
Dominant language
C++
Stars
1
Forks
0
Avg merge
3h 4m
Merged PRs (30d)
115

Description

## Problem

`tools/analyze-etw.ps1:109-171`:
- Tolerates lost ETW events without surfacing that as a validity concern.
- Selects a default symbol directory without verifying it matches the captured build.
- Uses different denominators for module-share vs. code-share percentages, and `CodeSharePct` is
actually a share of `TaskSmack.exe!*` samples specifically, not all process/system CPU --
currently unlabeled as such.

## Recommendation

Export lost-event count/validity status, per-sample weights, and unresolved-symbol counts.
Verify symbol/PDB identity matches the captured executable. Label `CodeSharePct` accurately
(share of `TaskSmack.exe!*` samples). Report absolute process CPU time and thread attribution
alongside percentages. An invalid/lossy trace should be inspectable but must not silently pass
acceptance criteria.

## Acceptance criteria

- Lost-event count and a validity flag are part of the script's output.
- Symbol directory/PDB identity is verified against the captured binary, not just defaulted.
- `CodeSharePct`'s label/documentation matches what it actually measures.
- A trace with significant lost events or unresolved symbols is flagged, not silently accepted.

## Additional Context

From #843's Phase 0 tooling-trust review addendum ("Concrete performance-tooling work" table,
analyze-etw.ps1 row).

Contributor guide

Open the contributing guide

Research direction

Start in tools/analyze-etw.ps1 lines 109-171 and trace how lost events, symbol directories, unresolved symbols, and percentage denominators currently reach the script output. Compare the captured executable and its symbols while reviewing the existing CodeSharePct labeling. Done means the output exposes loss, validity, weights, symbol resolution, and absolute attribution, and flags lossy or unresolved traces instead of silently accepting them.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, powershell
Domain
performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.