Commit b956998
authored
feat!: Include CPU id in CPU profile samples (#338)
* feat: Include CPU id in CPU profile samples
perf-self-profile (breaking change):
- Sample.cpu is now Option<u32> rather than u32. Perf sampling always
returns Some(cpu) via PERF_SAMPLE_CPU; the ctimer fallback returns
None when SYS_getcpu fails instead of silently reporting cpu 0.
- SampleData/DrainedSample/SlotWriter::write in the lock-free ring
buffer thread Option<u32> through the signal-handler-safe path.
dial9-tokio-telemetry:
- CpuSampleData.cpu: Option<u32> (in-memory).
- CpuSampleEvent.cpu: Option<u64> on the wire. Widened to u64 so the
field encodes as OptionalVarint: 1 byte when absent, 2 bytes total
for typical small CPU ids. Narrowed back to Option<u32> on decode.
- TelemetryEvent::CpuSample gains cpu: Option<u32>. Older traces
without the field decode as None (forward-compatible).
- RawCpuSample.cpu threaded through CpuProfiler::drain and
SchedProfiler::drain.
JS parser: CpuSample objects now expose cpu: number|null.
Tests:
- perf-self-profile: multithread.rs asserts every perf sample carries
Some(cpu) (Linux-only).
- dial9-tokio-telemetry: two round-trip tests in buffer.rs exercising
encode+decode with cpu=Some(7) and cpu=None through ThreadLocalBuffer.
Drive-by: narrow cfg(test) on SchedStat.fd to cfg(all(test, target_os
= "linux")) to match its only reader, fixing a dead_code warning on
non-Linux builds.
Demo trace not yet regenerated (pending Linux environment).
* Regenerate demo trace with cpu id in CpuSample events
Verified 7411 / 7411 CpuSample events carry a cpu id (10 distinct CPU
ids observed: 0-9). Generated via scripts/regenerate_demo_trace_docker.sh
on the aarch64 docker builder.1 parent 7103006 commit b956998
15 files changed
Lines changed: 140 additions & 34 deletions
File tree
- dial9-tokio-telemetry/src/telemetry
- recorder
- dial9-viewer/ui
- perf-self-profile
- examples
- src
- sys/linux
- fp_profiler
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1271 | 1271 | | |
1272 | 1272 | | |
1273 | 1273 | | |
| 1274 | + | |
1274 | 1275 | | |
1275 | 1276 | | |
1276 | 1277 | | |
| |||
1279 | 1280 | | |
1280 | 1281 | | |
1281 | 1282 | | |
| 1283 | + | |
1282 | 1284 | | |
1283 | 1285 | | |
1284 | 1286 | | |
| |||
1332 | 1334 | | |
1333 | 1335 | | |
1334 | 1336 | | |
| 1337 | + | |
1335 | 1338 | | |
1336 | 1339 | | |
1337 | 1340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
| 270 | + | |
270 | 271 | | |
271 | 272 | | |
272 | 273 | | |
| |||
607 | 608 | | |
608 | 609 | | |
609 | 610 | | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
610 | 662 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
89 | 90 | | |
90 | 91 | | |
91 | 92 | | |
| |||
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
| 138 | + | |
137 | 139 | | |
138 | 140 | | |
139 | 141 | | |
| |||
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
| 177 | + | |
175 | 178 | | |
176 | 179 | | |
177 | 180 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
164 | 168 | | |
165 | 169 | | |
166 | 170 | | |
| |||
349 | 353 | | |
350 | 354 | | |
351 | 355 | | |
| 356 | + | |
| 357 | + | |
352 | 358 | | |
353 | 359 | | |
354 | 360 | | |
| |||
450 | 456 | | |
451 | 457 | | |
452 | 458 | | |
453 | | - | |
| 459 | + | |
454 | 460 | | |
455 | 461 | | |
456 | 462 | | |
| |||
509 | 515 | | |
510 | 516 | | |
511 | 517 | | |
512 | | - | |
| 518 | + | |
513 | 519 | | |
514 | 520 | | |
515 | 521 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
199 | 204 | | |
200 | 205 | | |
201 | 206 | | |
| |||
414 | 419 | | |
415 | 420 | | |
416 | 421 | | |
| 422 | + | |
| 423 | + | |
417 | 424 | | |
418 | 425 | | |
419 | 426 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| |||
112 | 113 | | |
113 | 114 | | |
114 | 115 | | |
| 116 | + | |
115 | 117 | | |
116 | 118 | | |
117 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2393 | 2393 | | |
2394 | 2394 | | |
2395 | 2395 | | |
| 2396 | + | |
2396 | 2397 | | |
2397 | 2398 | | |
2398 | 2399 | | |
| |||
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
356 | 357 | | |
357 | 358 | | |
358 | 359 | | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
359 | 364 | | |
360 | 365 | | |
361 | 366 | | |
362 | 367 | | |
363 | 368 | | |
364 | 369 | | |
| 370 | + | |
365 | 371 | | |
366 | 372 | | |
367 | 373 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
51 | 55 | | |
52 | | - | |
53 | | - | |
| 56 | + | |
| 57 | + | |
54 | 58 | | |
55 | 59 | | |
56 | 60 | | |
| |||
0 commit comments