feat(wall): add configurable wall thread scope#663
Conversation
CI Test ResultsRun: #29584494721 | Commit:
Status Overview
Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled Summary: Total: 32 | Passed: 32 | Failed: 0 Updated: 2026-07-17 13:53:55 UTC |
Benchmark Results (commit 8b014d4)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/125011552 Commit:
|
| Benchmark | JDK | Latest | Dev | Δ (dev vs latest) | Issues L/D |
|---|---|---|---|---|---|
| akka-uct | 21 | ✅ 10318 ms (21 iters) | ✅ 10283 ms (21 iters) | ≈ -0.3% (±11.6%) | — / |
| akka-uct | 25 | ✅ 8908 ms (24 iters) | ✅ 8838 ms (24 iters) | ≈ -0.8% (±10.3%) | — / — |
| finagle-chirper | 21 | ✅ 5949 ms (33 iters) | ✅ 5997 ms (33 iters) | ≈ +0.8% (±25.3%) | |
| finagle-chirper | 25 | ✅ 5480 ms (36 iters) | ✅ 5465 ms (36 iters) | ≈ -0.3% (±24%) | |
| fj-kmeans | 21 | ✅ 2641 ms (71 iters) | ✅ 2712 ms (68 iters) | 🔴 +2.7% | — / — |
| fj-kmeans | 25 | ✅ 2797 ms (67 iters) | ✅ 2804 ms (66 iters) | ≈ +0.3% (±2.6%) | — / — |
| future-genetic | 21 | ✅ 2098 ms (88 iters) | ✅ 2051 ms (90 iters) | ≈ -2.2% (±2.5%) | — / — |
| future-genetic | 25 | ✅ 2058 ms (90 iters) | ✅ 2065 ms (90 iters) | ≈ +0.3% (±2.8%) | — / — |
| naive-bayes | 21 | ✅ 1229 ms (139 iters) | ✅ 1248 ms (137 iters) | ≈ +1.5% (±32.9%) | — / — |
| naive-bayes | 25 | ✅ 1014 ms (168 iters) | ✅ 1018 ms (168 iters) | ≈ +0.4% (±31.8%) | — / — |
| reactors | 21 | ✅ 15862 ms (15 iters) | ✅ 17202 ms (15 iters) | ≈ +8.4% (±8.5%) | — / — |
| reactors | 25 | ✅ 18278 ms (15 iters) | ✅ 18696 ms (15 iters) | ≈ +2.3% (±4.5%) | — / — |
Internal counter details (ddprof)
ddprof internal counters, latest / dev (✅ = 0, · = unavailable):
| Benchmark | JDK | Dropped rec | Dropped jvmti | Dropped trace | Skipped WC | AGCT fail | Unwind fail |
|---|---|---|---|---|---|---|---|
| akka-uct | 21 | ✅ / ✅ | ✅ / ✅ | ✅ / 3 | 2030 / 1846 | ✅ / ✅ | ✅ / ✅ |
| akka-uct | 25 | ✅ / ✅ | ✅ / ✅ | 3 / 2 | 2179 / 2336 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 21 | ✅ / ✅ | ✅ / ✅ | 2 / 3 | 8235 / 9052 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 25 | ✅ / ✅ | ✅ / ✅ | 1 / 2 | 8426 / 8551 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 21 | ✅ / ✅ | ✅ / ✅ | 2 / 1 | 1290 / 1231 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 25 | ✅ / ✅ | ✅ / ✅ | 2 / ✅ | 1263 / 1268 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 21 | ✅ / ✅ | ✅ / ✅ | 1 / 1 | 2930 / 2992 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 25 | ✅ / ✅ | ✅ / ✅ | 1 / 2 | 2854 / 2828 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 21 | ✅ / ✅ | ✅ / ✅ | 4 / 8 | 3483 / 3503 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 25 | ✅ / ✅ | ✅ / ✅ | 2 / 5 | 3483 / 3482 | ✅ / ✅ | ✅ / ✅ |
| reactors | 21 | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | 1544 / 1666 | ✅ / ✅ | ✅ / ✅ |
| reactors | 25 | ✅ / ✅ | ✅ / ✅ | 1 / ✅ | 1862 / 1915 | ✅ / ✅ | ✅ / ✅ |
Reliability & Chaos Results✅ All reliability & chaos checks passed Pipeline: https://gitlab.ddbuild.io/DataDog/java-profiler/-/pipelines/125161859 |
Benchmark Results (commit c5c80a1)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/125035017 Commit:
|
| Benchmark | JDK | Latest | Dev | Δ (dev vs latest) | Issues L/D |
|---|---|---|---|---|---|
| akka-uct | 21 | ✅ 10373 ms (21 iters) | ✅ 10354 ms (21 iters) | ≈ -0.2% (±11%) | — / — |
| akka-uct | 25 | ✅ 8923 ms (24 iters) | ✅ 8859 ms (24 iters) | ≈ -0.7% (±11.1%) | — / — |
| finagle-chirper | 21 | ✅ 6004 ms (33 iters) | ✅ 5945 ms (33 iters) | ≈ -1% (±24.9%) | |
| finagle-chirper | 25 | ✅ 5502 ms (36 iters) | ✅ 5492 ms (36 iters) | ≈ -0.2% (±24.7%) | |
| fj-kmeans | 21 | ✅ 2815 ms (66 iters) | ✅ 2761 ms (67 iters) | ≈ -1.9% (±2.6%) | — / — |
| fj-kmeans | 25 | ✅ 2806 ms (66 iters) | ✅ 2817 ms (66 iters) | ≈ +0.4% (±2.7%) | — / — |
| future-genetic | 21 | ✅ 2112 ms (88 iters) | ✅ 2039 ms (90 iters) | 🟢 -3.5% | — / — |
| future-genetic | 25 | ✅ 2087 ms (89 iters) | ✅ 2121 ms (87 iters) | ≈ +1.6% (±2.5%) | — / — |
| naive-bayes | 21 | ✅ 1245 ms (137 iters) | ✅ 1290 ms (133 iters) | ≈ +3.6% (±33.5%) | — / — |
| naive-bayes | 25 | ✅ 942 ms (180 iters) | ✅ 1010 ms (170 iters) | ≈ +7.2% (±33.1%) | — / — |
| reactors | 21 | ✅ 16169 ms (15 iters) | ✅ 16307 ms (15 iters) | ≈ +0.9% (±8.4%) | — / — |
| reactors | 25 | ✅ 18595 ms (15 iters) | ✅ 18314 ms (15 iters) | ≈ -1.5% (±4.3%) | — / — |
Internal counter details (ddprof)
ddprof internal counters, latest / dev (✅ = 0, · = unavailable):
| Benchmark | JDK | Dropped rec | Dropped jvmti | Dropped trace | Skipped WC | AGCT fail | Unwind fail |
|---|---|---|---|---|---|---|---|
| akka-uct | 21 | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ |
| akka-uct | 25 | ✅ / ✅ | ✅ / ✅ | 6 / 2 | 2331 / 2331 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 21 | ✅ / ✅ | ✅ / ✅ | 3 / 2 | 8668 / 8486 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 25 | ✅ / ✅ | ✅ / ✅ | 1 / 1 | 8654 / 8372 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 21 | ✅ / ✅ | ✅ / ✅ | 3 / ✅ | 1266 / 1266 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 25 | ✅ / ✅ | ✅ / ✅ | 4 / 2 | 1268 / 1277 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 21 | ✅ / ✅ | ✅ / ✅ | ✅ / 4 | 2959 / 2890 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 25 | ✅ / ✅ | ✅ / ✅ | 1 / 1 | 2892 / 2908 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 21 | ✅ / ✅ | ✅ / ✅ | 6 / 1 | 3450 / 3518 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 25 | ✅ / ✅ | ✅ / ✅ | 4 / 3 | 3471 / 3476 | ✅ / ✅ | ✅ / ✅ |
| reactors | 21 | ✅ / ✅ | ✅ / ✅ | 3 / ✅ | 1591 / 1650 | ✅ / ✅ | ✅ / ✅ |
| reactors | 25 | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | 1876 / 1848 | ✅ / ✅ | ✅ / ✅ |
Benchmark Results (commit 4f88000)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/125161860 Commit:
|
| Benchmark | JDK | Latest | Dev | Δ (dev vs latest) | Issues L/D |
|---|---|---|---|---|---|
| akka-uct | 21 | ✅ 10354 ms (21 iters) | ✅ 10373 ms (21 iters) | ≈ +0.2% (±11.8%) | — / — |
| akka-uct | 25 | ✅ 8842 ms (24 iters) | ✅ 8759 ms (24 iters) | ≈ -0.9% (±10.1%) | — / — |
| finagle-chirper | 21 | ✅ 6017 ms (33 iters) | ✅ 5997 ms (33 iters) | ≈ -0.3% (±26.2%) | |
| finagle-chirper | 25 | ✅ 5458 ms (36 iters) | ✅ 5511 ms (36 iters) | ≈ +1% (±24.4%) | |
| fj-kmeans | 25 | ✅ 2829 ms (66 iters) | ✅ 2841 ms (66 iters) | ≈ +0.4% (±2.6%) | — / — |
| future-genetic | 21 | ✅ 2064 ms (90 iters) | ✅ 2085 ms (89 iters) | ≈ +1% (±2.6%) | — / — |
| future-genetic | 25 | ✅ 1978 ms (94 iters) | ✅ 2057 ms (90 iters) | 🔴 +4% | — / — |
| naive-bayes | 21 | ✅ 1291 ms (132 iters) | ✅ 1270 ms (135 iters) | ≈ -1.6% (±32.6%) | — / — |
| naive-bayes | 25 | ✅ 997 ms (171 iters) | ✅ 1021 ms (168 iters) | ≈ +2.4% (±32%) | — / — |
| reactors | 21 | ✅ 16340 ms (15 iters) | ✅ 16122 ms (15 iters) | ≈ -1.3% (±7.6%) | — / — |
| reactors | 25 | ✅ 18334 ms (15 iters) | ✅ 18899 ms (15 iters) | ≈ +3.1% (±4.9%) | — / — |
Internal counter details (ddprof)
ddprof internal counters, latest / dev (✅ = 0, · = unavailable):
| Benchmark | JDK | Dropped rec | Dropped jvmti | Dropped trace | Skipped WC | AGCT fail | Unwind fail |
|---|---|---|---|---|---|---|---|
| akka-uct | 21 | ✅ / ✅ | ✅ / ✅ | 3 / 4 | 2055 / 2020 | ✅ / ✅ | ✅ / ✅ |
| akka-uct | 25 | ✅ / ✅ | ✅ / ✅ | 2 / 1 | 2271 / 2396 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 21 | ✅ / ✅ | ✅ / ✅ | 1 / 2 | 8883 / 8402 | ✅ / ✅ | ✅ / ✅ |
| finagle-chirper | 25 | ✅ / ✅ | ✅ / ✅ | 2 / 2 | 8607 / 8795 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 21 | ✅ / ✅ | ✅ / ✅ | 1 / 1 | 1272 / 1246 | ✅ / ✅ | ✅ / ✅ |
| fj-kmeans | 25 | ✅ / ✅ | ✅ / ✅ | 4 / ✅ | 1286 / 1293 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 21 | ✅ / ✅ | ✅ / ✅ | ✅ / 2 | 2963 / 2968 | ✅ / ✅ | ✅ / ✅ |
| future-genetic | 25 | ✅ / ✅ | ✅ / ✅ | ✅ / ✅ | 3066 / 2879 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 21 | ✅ / ✅ | ✅ / ✅ | 4 / 3 | 3505 / 3524 | ✅ / ✅ | ✅ / ✅ |
| naive-bayes | 25 | ✅ / ✅ | ✅ / ✅ | 4 / 6 | 3503 / 3504 | ✅ / ✅ | ✅ / ✅ |
| reactors | 21 | ✅ / ✅ | ✅ / ✅ | 2 / ✅ | 1783 / 1867 | ✅ / ✅ | ✅ / ✅ |
| reactors | 25 | ✅ / ✅ | ✅ / ✅ | 1 / ✅ | 1836 / 1880 | ✅ / ✅ | ✅ / ✅ |
What does this PR do?:
Adds an explicit wall-clock thread scope option. The default remains context-scoped wall profiling, while
wallscope=allenables profiling all registered threads.Motivation:
This makes all-thread wall profiling available without changing the default behavior. Follow-up TaskBlock PRs can opt into all-thread visibility while preserving the existing context-scoped mode.
Additional Notes:
wallscope=contextis the default behavior.wallscope=allis opt-in.How to test the change?:
Automated coverage includes wall scope argument parsing, thread filter behavior, and Java integration tests for all-thread and context-only wall scopes.
./.claude/commands/build-and-summarize testDebug./.claude/commands/build-and-summarize :ddprof-lib:gtestDebug_wallprecheck_args_utFor Datadog employees:
dd:platform-security-reviewskill, or file a request via the PSEC review form).bewairealso runs automatically on every PR.