mgradwohl / mgradwohl/tasksmack
[Perf][Tooling] analyze-etw.ps1 silently tolerates lost events and uses inconsistent denominators
- 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
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