Skip to content

feat: add core TaskBlock event recording support - #664

Draft
kaahos wants to merge 20 commits into
mainfrom
paul.fournillon/taskblock-core
Draft

feat: add core TaskBlock event recording support#664
kaahos wants to merge 20 commits into
mainfrom
paul.fournillon/taskblock-core

Conversation

@kaahos

@kaahos kaahos commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?:

Adds the core TaskBlock event emission machinery. Recognized blocked intervals are recorded synchronously at block exit, with native APIs, JFR metadata, counters, and wall precheck integration.

Motivation:

Blocked threads should not need to receive wall-clock signals just to represent blocking time. TaskBlock events let the profiler report known blocking intervals directly.

Additional Notes:

This PR adds the generic recording path only. Concrete JVM and native blocking producers are added in follow-up PRs.

How to test the change?:

Automated coverage includes TaskBlock recorder unit tests, Java API tests, wall precheck behavior, disabled-state behavior, and combined wall-clock mitigation tests.

  • ./.claude/commands/build-and-summarize testDebug

For Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a security review (run the dd:platform-security-review skill, or file a request via the PSEC review form).
    bewaire also runs automatically on every PR.
  • This PR doesn't touch any of that.
  • JIRA: [JIRA-XXXX]

@dd-octo-sts

dd-octo-sts Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #30281137731 | Commit: 3aaf97a | Duration: 27m 50s (longest job)

2 of 32 test jobs failed

Status Overview

JDK glibc-aarch64/debug glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - - -
8-ibm - - -
8-j9 - -
8-librca - -
8-orcl - - -
11 - - -
11-j9 - -
11-librca - -
17 - -
17-graal - -
17-j9 - -
17-librca - -
21 - -
21-graal - -
21-librca - -
25 - -
25-graal - -
25-librca - -

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Failed Tests

glibc-aarch64/debug / 25

Job: View logs

No detailed failure information available. Check the job logs.

glibc-aarch64/debug / 25-graal

Job: View logs

No detailed failure information available. Check the job logs.

Summary: Total: 32 | Passed: 30 | Failed: 2


Updated: 2026-07-27 17:00:55 UTC

@dd-octo-sts

dd-octo-sts Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Reliability & Chaos Results

All reliability & chaos checks passed Pipeline: https://gitlab.ddbuild.io/DataDog/java-profiler/-/pipelines/127205833

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch 2 times, most recently from ad202a1 to 44a17e3 Compare July 16, 2026 15:18
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Tests

🔄 Datadog auto-retried 1 job - 0 passed on retry View in Datadog

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 114be60 | Docs | Datadog PR Page | Give us feedback!

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch 2 times, most recently from 80d9909 to 01d5271 Compare July 17, 2026 14:59
@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch 2 times, most recently from aada80b to 6d59cf5 Compare July 20, 2026 08:02
@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 6d59cf5 to 73e3af6 Compare July 20, 2026 14:34
Copilot AI review requested due to automatic review settings July 21, 2026 07:24
@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 73e3af6 to ebab4c4 Compare July 21, 2026 07:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class TaskBlock event recording to the Java profiler so known blocking intervals can be emitted directly (without relying on wall-clock sampling signals), including native/JFR plumbing and updates to wall-precheck behavior and tests.

Changes:

  • Introduces public Java API beginTaskBlock(int) / endTaskBlock(long, long, long) and native recording pipeline for datadog.TaskBlock.
  • Reworks wall-precheck suppression around lifecycle-owned blocked runs, including unfiltered registry tracking and bounded “lazy backfill” candidate selection.
  • Expands unit/integration/benchmark coverage for unfiltered precheck, restart safety, JVMTI delegation, and TaskBlock behavior.

Reviewed changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/WallclockMitigationsCombinedTest.java Updates combined mitigation assertions to ensure context-scoped threads remain sampled and suppression counters don’t change.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/UnfilteredWallPrecheckTest.java Adds integration coverage for owned-block prechecks when filter= samples every thread.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/UnfilteredWallPrecheckRestartTest.java Adds restart/epoch safety coverage for unfiltered tracking across multiple recordings.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/TaskBlockAssertions.java Adds JMC-based assertion helpers for datadog.TaskBlock contract validation.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/PrecheckTest.java Updates precheck tests to new suppression semantics/counters and explicit filter= behavior.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/PrecheckEfficiencyTest.java Adjusts workload tests to align with new lifecycle-owned suppression and explicit unfiltered sampling.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/JvmtiBasedUnfilteredWallPrecheckTest.java Adds JVMTI-delegated stack path coverage for unfiltered owned-block precheck.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/JvmtiBasedPrecheckTest.java Aligns JVMTI precheck tests with explicit filter= commands.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/JavaProfilerTaskBlockPreExistingThreadTest.java Verifies TaskBlock TLS init for threads created before profiler startup.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/JavaProfilerTaskBlockDisabledTest.java Verifies TaskBlock API stays inactive when not in all-thread scope.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/JavaProfilerTaskBlockApiTest.java End-to-end coverage for paired TaskBlock API, nesting/token rules, context admission, vthreads, and live dump behavior.
ddprof-test/src/test/java/com/datadoghq/profiler/wallclock/J9WallClockPrecheckCapabilityTest.java Ensures unsupported J9 wall engine doesn’t activate unfiltered precheck tracking.
ddprof-test/src/test/java/com/datadoghq/profiler/JavaProfilerApiSurfaceTest.java Verifies TaskBlock API is public while internal hooks remain non-public.
ddprof-test/src/test/java/com/datadoghq/profiler/context/OtelContextStorageModeTest.java Ensures trace context is cleared during cleanup (ordering with reset).
ddprof-test/src/test/java/com/datadoghq/profiler/context/AllNativeContextTest.java Ensures trace context is cleared during cleanup (ordering with reset).
ddprof-test/src/test/java/com/datadoghq/profiler/AbstractProfilerTest.java Adds beforeProfilerStart() hook and clears trace context on stopProfiler().
ddprof-stresstest/src/jmh/java/com/datadoghq/profiler/WallClockPrecheckBenchmarkHooks.java Exposes package-scoped hooks for benchmarking owned-block precheck overhead.
ddprof-stresstest/src/jmh/java/com/datadoghq/profiler/stresstest/scenarios/throughput/WallClockPrecheckOverheadBenchmark.java Adds JMH benchmark for steady-state wall timer overhead vs. owned-block population size.
ddprof-lib/src/test/cpp/wallprecheck_args_ut.cpp Adds engine capability and filter= parsing regression tests.
ddprof-lib/src/test/cpp/wallClockCounters_ut.cpp Renames/updates suppression counter tests to owned-block suppression.
ddprof-lib/src/test/cpp/wallClockCandidateSelector_ut.cpp Adds unit tests for bounded candidate selection/backfill logic.
ddprof-lib/src/test/cpp/threadFilter_ut.cpp Expands ThreadFilter tests for registry, epoch, token encoding, and owned-block suppression eligibility.
ddprof-lib/src/test/cpp/taskBlockRecorder_ut.cpp Adds unit tests for TaskBlock eligibility, rotation, and record/stack failure accounting.
ddprof-lib/src/test/cpp/park_state_ut.cpp Updates tests to owned-block state semantics and slot-reset expectations.
ddprof-lib/src/test/cpp/jvmSupport_ut.cpp Adds unit tests for platform vs. virtual thread classification via JNI table probing.
ddprof-lib/src/test/cpp/frame_ut.cpp Adds unit test for copyJvmtiFrames() union-overlap safety.
ddprof-lib/src/main/java/com/datadoghq/profiler/JavaProfiler.java Adds public TaskBlock API and native bindings; clarifies internal hook comments.
ddprof-lib/src/main/cpp/wallClockCounters.h Renames suppressed-sample counter to owned-block suppression counter.
ddprof-lib/src/main/cpp/wallClockCandidateSelector.h Introduces bounded randomized candidate selection with precheck-rejection backfill.
ddprof-lib/src/main/cpp/wallClock.h Integrates candidate selector + new suppression counters and visit budgeting.
ddprof-lib/src/main/cpp/wallClock.cpp Reworks precheck suppression to use ThreadFilter-owned block eligibility and optional lazy backfill/lookup accounting.
ddprof-lib/src/main/cpp/threadLocalData.h Adds per-thread TaskBlock lifecycle state in TLS.
ddprof-lib/src/main/cpp/threadFilter.h Adds registry/unfiltered tracking, epoching, owned-block snapshots/tokens, and suppression eligibility checks.
ddprof-lib/src/main/cpp/threadFilter.cpp Implements registry/TID index, recording epochs, retirement, and owned-block suppression candidate logic.
ddprof-lib/src/main/cpp/taskBlockRecorder.h Adds TaskBlock eligibility checks and recording helper APIs.
ddprof-lib/src/main/cpp/taskBlockRecorder.cpp Implements duration thresholding and basic eligibility helpers.
ddprof-lib/src/main/cpp/profiler.h Adds TaskBlock recording entry points and rotation/inflight coordination.
ddprof-lib/src/main/cpp/profiler.cpp Adds TaskBlock recording implementation, rotation coordination, registry bootstrap for existing threads, and updated filter init semantics.
ddprof-lib/src/main/cpp/jvmThread.h Adds capability query for native thread-id lookup support.
ddprof-lib/src/main/cpp/jvmThread.cpp Implements native thread-id lookup capability helper.
ddprof-lib/src/main/cpp/jvmSupport.h Declares isPlatformThread() helper for virtual thread rejection.
ddprof-lib/src/main/cpp/jvmSupport.cpp Implements JNI table probing to detect virtual threads (JDK 19+).
ddprof-lib/src/main/cpp/jfrMetadata.h Adds new JFR type id for TaskBlock.
ddprof-lib/src/main/cpp/jfrMetadata.cpp Registers datadog.TaskBlock event metadata fields.
ddprof-lib/src/main/cpp/javaApi.cpp Adds native implementations for TaskBlock API + registry-aware filter/add/remove and owned-block hooks.
ddprof-lib/src/main/cpp/frames.h Adds copyJvmtiFrames() helper for overlapping JVMTI/ASGCT frame buffers.
ddprof-lib/src/main/cpp/flightRecorder.h Adds TaskBlock recording entry points in recording/recorder.
ddprof-lib/src/main/cpp/flightRecorder.cpp Implements TaskBlock event serialization and recorder entry.
ddprof-lib/src/main/cpp/event.h Adds TaskBlock event struct; updates wall epoch suppressed counter field name/type usage.
ddprof-lib/src/main/cpp/engine.h Adds wall-engine capability query for unfiltered precheck support.
ddprof-lib/src/main/cpp/counters.h Adds counters for registry lookup budget/retirement and TaskBlock outcomes; renames suppression counter.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ddprof-lib/src/main/cpp/threadFilter.h
@dd-octo-sts

dd-octo-sts Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit ebab4c4)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/125876908 Commit: ebab4c4a50fba6ef669b18c4aa0aebbdff629a4c

⚠️ Significant outliers

  • 🔴 fj-kmeans (JDK 21): runtime +4.4% (2671→2788 ms)
  • 🔴 future-genetic (JDK 21): runtime +3.6% (2054→2127 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10309 ms (21 iters) ✅ 10352 ms (21 iters) ≈ +0.4% (±11.1%) — / —
akka-uct 25 ✅ 8971 ms (24 iters) ✅ 8823 ms (24 iters) ≈ -1.6% (±10.5%) — / —
finagle-chirper 21 ✅ 5997 ms (33 iters) ✅ 5974 ms (33 iters) ≈ -0.4% (±25.4%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5455 ms (36 iters) ✅ 5469 ms (36 iters) ≈ +0.3% (±24.6%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2671 ms (69 iters) ✅ 2788 ms (67 iters) 🔴 +4.4% — / —
fj-kmeans 25 ✅ 2765 ms (68 iters) ✅ 2778 ms (67 iters) ≈ +0.5% (±2.8%) — / —
future-genetic 21 ✅ 2054 ms (91 iters) ✅ 2127 ms (88 iters) 🔴 +3.6% — / —
future-genetic 25 ✅ 2027 ms (91 iters) ✅ 2069 ms (90 iters) ≈ +2.1% (±2.8%) — / —
naive-bayes 21 ✅ 1284 ms (133 iters) ✅ 1244 ms (137 iters) ≈ -3.1% (±32.2%) — / —
naive-bayes 25 ✅ 1013 ms (169 iters) ✅ 1017 ms (168 iters) ≈ +0.4% (±31.6%) — / —
reactors 21 ✅ 16291 ms (15 iters) ✅ 15943 ms (15 iters) ≈ -2.1% (±8.5%) — / —
reactors 25 ✅ 18609 ms (15 iters) ✅ 18693 ms (15 iters) ≈ +0.5% (±4%) — / —
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 1885 / 2016 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 6 / ✅ 2056 / 2299 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 2 / 1 8787 / 8984 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 2 / 1 8287 / 8556 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 1 / 2 1235 / 1277 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 4 / 3 1295 / 1292 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 2 / 1 3001 / 3006 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ ✅ / 1 2834 / 2887 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 5 / 6 3513 / 3477 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 2 / ✅ 3500 / 3460 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ 3 / ✅ 1612 / 1583 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 3 / 2 1916 / 1954 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from ebab4c4 to 19cbe47 Compare July 21, 2026 08:05
@dd-octo-sts

dd-octo-sts Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 19cbe47)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/125884549 Commit: 19cbe4788734f0e123535816d373913189efef91

⚠️ Significant outliers

  • 🔴 fj-kmeans (JDK 21): runtime +5.5% (2696→2843 ms)
  • 🟢 reactors (JDK 21): runtime -7.7% (16927→15621 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10377 ms (21 iters) ✅ 10184 ms (21 iters) ≈ -1.9% (±11.2%) — / —
akka-uct 25 ✅ 8790 ms (24 iters) ✅ 8896 ms (24 iters) ≈ +1.2% (±9.7%) — / —
finagle-chirper 21 ✅ 5965 ms (33 iters) ✅ 5956 ms (33 iters) ≈ -0.2% (±25.2%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2696 ms (70 iters) ✅ 2843 ms (66 iters) 🔴 +5.5% — / —
fj-kmeans 25 ✅ 2796 ms (67 iters) ✅ 2746 ms (68 iters) ≈ -1.8% (±2.8%) — / —
future-genetic 21 ✅ 2052 ms (90 iters) ✅ 2099 ms (89 iters) ≈ +2.3% (±2.6%) — / —
future-genetic 25 ✅ 2035 ms (91 iters) ✅ 2047 ms (91 iters) ≈ +0.6% (±2.7%) — / —
naive-bayes 21 ✅ 1224 ms (139 iters) ✅ 1250 ms (136 iters) ≈ +2.1% (±33.2%) — / —
naive-bayes 25 ✅ 1016 ms (168 iters) ✅ 1017 ms (168 iters) ≈ +0.1% (±31.6%) — / —
reactors 21 ✅ 16927 ms (15 iters) ✅ 15621 ms (15 iters) 🟢 -7.7% — / —
reactors 25 ✅ 17980 ms (15 iters) ✅ 17858 ms (15 iters) ≈ -0.7% (±6.2%) — / —
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 ✅ / ✅ ✅ / ✅ 1 / 2 1969 / 1961 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ ✅ / 3 2168 / 2325 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 1 8522 / 8623 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 3 / 1 8617 / 8387 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 1 / 2 1273 / 1252 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 1 / 2 1256 / 1264 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 3 / 1 2942 / 2959 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 1 2855 / 2852 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 4 / 2 3466 / 3494 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 5 / 6 3466 / 3473 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 2 1660 / 1623 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1789 / 1796 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 19cbe47 to 25ba2a3 Compare July 21, 2026 14:33
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@DataDog DataDog deleted a comment from dd-octo-sts Bot Jul 21, 2026
@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 25ba2a3 to a074c1a Compare July 22, 2026 16:00
@dd-octo-sts

dd-octo-sts Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit a074c1a)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126291030 Commit: a074c1ad72e416e15696191fc4b8c96b6344f618

⚠️ Significant outliers

  • 🟢 fj-kmeans (JDK 21): runtime -4.8% (2820→2686 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10220 ms (21 iters) ✅ 10289 ms (21 iters) ≈ +0.7% (±11.4%) — / —
akka-uct 25 ✅ 8830 ms (24 iters) ✅ 8938 ms (24 iters) ≈ +1.2% (±10%) — / —
finagle-chirper 21 ✅ 5962 ms (33 iters) ✅ 6008 ms (33 iters) ≈ +0.8% (±25%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5505 ms (36 iters) ✅ 5497 ms (36 iters) ≈ -0.1% (±24.8%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2820 ms (66 iters) ✅ 2686 ms (70 iters) 🟢 -4.8% — / —
fj-kmeans 25 ✅ 2814 ms (66 iters) ✅ 2814 ms (66 iters) ≈ 0% (±2.6%) — / —
future-genetic 21 ✅ 2071 ms (89 iters) ✅ 2059 ms (90 iters) ≈ -0.6% (±2.8%) — / —
future-genetic 25 ✅ 1974 ms (94 iters) ✅ 2019 ms (92 iters) ≈ +2.3% (±2.6%) — / —
naive-bayes 21 ✅ 1273 ms (135 iters) ✅ 1233 ms (138 iters) ≈ -3.1% (±32.3%) — / —
naive-bayes 25 ✅ 1029 ms (166 iters) ✅ 1032 ms (165 iters) ≈ +0.3% (±31.8%) — / —
reactors 21 ✅ 16327 ms (15 iters) ✅ 15902 ms (15 iters) ≈ -2.6% (±8.2%) — / —
reactors 25 ✅ 18726 ms (15 iters) ✅ 18568 ms (15 iters) ≈ -0.8% (±3.1%) — / —
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 ✅ / ✅ ✅ / ✅ ✅ / 2 1969 / 2027 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 2 / 1 2251 / 2346 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 2 / 3 8913 / 8811 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 4 / ✅ 8798 / 8177 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 2 / ✅ 1271 / 1277 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 1 / 2 1265 / 1294 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 3 / 2 2877 / 2853 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 2 / 9 3505 / 3513 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 6 / 3 3491 / 3439 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ 4 / 1 1488 / 1665 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / 1 1876 / 1851 ✅ / ✅ ✅ / ✅

@kaahos

kaahos commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a074c1ad72

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +388 to +389
if (_precheck && suppressOwnedBlock(entry)) {
return WallClockCandidateOutcome::PRECHECK_REJECTED;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid suppressing waits that emit no TaskBlock

When wall=...,filter=,wallprecheck=true is active, this rejects any lifecycle-owned blocked run before sending a wall-clock signal. The existing parkEnter/parkExit and package-scoped blockEnter/blockExit paths still only call exitBlockedRun on exit; they do not call recordTaskBlockAtExit (only the new public beginTaskBlock/endTaskBlock pair does). For those callers, the first MethodSample that the old once-per-run path emitted is now removed, and no TaskBlock replaces it, so the blocked interval disappears from the profile. Please limit this suppression to event-backed TaskBlock intervals or keep one wall sample for the legacy owners.

AGENTS.md reference: AGENTS.md:L272-L275

Useful? React with 👍 / 👎.

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from a074c1a to 014aa0f Compare July 23, 2026 11:41
@dd-octo-sts

dd-octo-sts Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 014aa0f)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126491722 Commit: 014aa0f207d3ac0d6d123c96b90cda2d7fc64302

⚠️ Significant outliers

  • 🟢 future-genetic (JDK 21): runtime -3.8% (2130→2050 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10301 ms (21 iters) ✅ 10267 ms (21 iters) ≈ -0.3% (±11.6%) — / —
akka-uct 25 ✅ 8768 ms (24 iters) ✅ 8784 ms (24 iters) ≈ +0.2% (±9.6%) — / —
finagle-chirper 21 ✅ 6007 ms (33 iters) ✅ 5948 ms (33 iters) ≈ -1% (±24.8%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5456 ms (36 iters) ✅ 5440 ms (36 iters) ≈ -0.3% (±24.3%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2779 ms (67 iters) ✅ 2716 ms (69 iters) ≈ -2.3% (±2.7%) — / —
fj-kmeans 25 ✅ 2825 ms (66 iters) ✅ 2810 ms (66 iters) ≈ -0.5% (±2.6%) — / —
future-genetic 21 ✅ 2130 ms (87 iters) ✅ 2050 ms (90 iters) 🟢 -3.8% — / —
future-genetic 25 ✅ 2097 ms (89 iters) ✅ 2062 ms (89 iters) ≈ -1.7% (±2.6%) — / —
naive-bayes 21 ✅ 1321 ms (130 iters) ✅ 1274 ms (135 iters) ≈ -3.6% (±31.7%) — / —
naive-bayes 25 ✅ 1019 ms (168 iters) ✅ 1020 ms (167 iters) ≈ +0.1% (±31.7%) — / —
reactors 21 ✅ 16092 ms (15 iters) ✅ 15937 ms (15 iters) ≈ -1% (±8.1%) — / —
reactors 25 ✅ 18552 ms (15 iters) ✅ 18541 ms (15 iters) ≈ -0.1% (±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 ✅ / ✅ ✅ / ✅ 4 / 2 2019 / 1891 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 5 / 3 2074 / 2137 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 3 8628 / 8508 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 1 / 2 1286 / 1248 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 2 / 5 1295 / 1267 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ ✅ / 2 2957 / 2957 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 2 / 2 2874 / 2851 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 3 / 2 3539 / 3505 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 8 / 1 3500 / 3459 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 1 1605 / 1555 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 2 / 1 1936 / 1924 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 014aa0f to 14e6d9e Compare July 23, 2026 13:05
@dd-octo-sts

dd-octo-sts Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 14e6d9e)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126515876 Commit: 14e6d9ebb14feab0fcb9d32c11c8be026ddf1544

⚠️ Significant outliers

  • 🔴 fj-kmeans (JDK 21): runtime +5.1% (2652→2787 ms)
  • 🔴 future-genetic (JDK 25): runtime +5.6% (2021→2135 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10379 ms (21 iters) ✅ 10307 ms (21 iters) ≈ -0.7% (±10.8%) — / —
akka-uct 25 ✅ 8781 ms (24 iters) ✅ 8894 ms (24 iters) ≈ +1.3% (±9.4%) — / —
finagle-chirper 21 ✅ 6012 ms (33 iters) ✅ 5906 ms (33 iters) ≈ -1.8% (±24.7%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5502 ms (36 iters) ✅ 5472 ms (36 iters) ≈ -0.5% (±23.8%) ⚠️ W:4 / ⚠️ W:3
fj-kmeans 21 ✅ 2652 ms (71 iters) ✅ 2787 ms (67 iters) 🔴 +5.1% — / —
fj-kmeans 25 ✅ 2805 ms (66 iters) ✅ 2809 ms (66 iters) ≈ +0.1% (±2.6%) — / —
future-genetic 21 ✅ 2047 ms (90 iters) ✅ 2045 ms (90 iters) ≈ -0.1% (±2.5%) — / —
future-genetic 25 ✅ 2021 ms (92 iters) ✅ 2135 ms (87 iters) 🔴 +5.6% — / —
naive-bayes 21 ✅ 1266 ms (135 iters) ✅ 1292 ms (133 iters) ≈ +2.1% (±32.8%) — / —
naive-bayes 25 ✅ 984 ms (174 iters) ✅ 1021 ms (167 iters) ≈ +3.8% (±32.1%) — / —
reactors 21 ✅ 15979 ms (15 iters) ✅ 16452 ms (15 iters) ≈ +3% (±7.1%) — / —
reactors 25 ✅ 18322 ms (15 iters) ✅ 18641 ms (15 iters) ≈ +1.7% (±4.8%) — / —
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 ✅ / ✅ ✅ / ✅ 4 / 3 1921 / 1930 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 1 / 2 2121 / 2168 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 1 8699 / 8704 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 1 8289 / 8216 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 3 / 1 1282 / 1278 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 3 / 1 1258 / 1262 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 1 / ✅ 2995 / 2928 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 3 / 1 2909 / 2940 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 7 / 7 3556 / 3541 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 1 / 2 3474 / 3493 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 3 1592 / 1669 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ ✅ / 1 1804 / 1907 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 14e6d9e to 06498d2 Compare July 23, 2026 13:55
@dd-octo-sts

dd-octo-sts Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 06498d2)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126534749 Commit: 06498d2ca410570fde03bc1a7dc8e39ab268b95e

⚠️ Significant outliers

  • 💥 finagle-chirper (JDK 21): latest crashed
  • 🔴 fj-kmeans (JDK 21): runtime +2.8% (2702→2779 ms)
  • 🔴 reactors (JDK 21): runtime +10.2% (16142→17786 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10296 ms (21 iters) ✅ 10312 ms (21 iters) ≈ +0.2% (±10.4%) — / —
akka-uct 25 ✅ 8825 ms (24 iters) ✅ 8895 ms (24 iters) ≈ +0.8% (±10.2%) — / —
finagle-chirper 21 💥 4329 ms (30 iters) 💥 0 ms (0 iters) ⚠️ E:1 W:5 / —
finagle-chirper 25 ✅ 5475 ms (36 iters) ✅ 5393 ms (36 iters) ≈ -1.5% (±23.8%) ⚠️ W:3 / ⚠️ W:4
fj-kmeans 21 ✅ 2702 ms (70 iters) ✅ 2779 ms (67 iters) 🔴 +2.8% — / —
fj-kmeans 25 ✅ 2834 ms (66 iters) ✅ 2852 ms (66 iters) ≈ +0.6% (±2.7%) — / —
future-genetic 21 ✅ 2063 ms (90 iters) ✅ 2075 ms (90 iters) ≈ +0.6% (±2.7%) — / —
future-genetic 25 ✅ 2065 ms (90 iters) ✅ 2109 ms (88 iters) ≈ +2.1% (±2.6%) — / —
naive-bayes 21 ✅ 1271 ms (135 iters) ✅ 1293 ms (132 iters) ≈ +1.7% (±33.2%) — / —
naive-bayes 25 ✅ 1017 ms (168 iters) ✅ 982 ms (173 iters) ≈ -3.4% (±31.6%) — / —
reactors 21 ✅ 16142 ms (15 iters) ✅ 17786 ms (15 iters) 🔴 +10.2% — / —
reactors 25 ✅ 18046 ms (15 iters) ✅ 18123 ms (15 iters) ≈ +0.4% (±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 ✅ / ✅ ✅ / ✅ 2 / 2 1949 / 2092 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 1 / ✅ 2365 / 2269 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 4 / 2 8763 / 8300 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 1 8922 / 8259 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 1 / 1 1290 / 1254 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ ✅ / 1 1262 / 1286 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 1 / 4 2921 / 2942 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 2 2903 / 2873 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 2 / 7 3512 / 3488 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 6 / 3 3457 / 3473 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 1 1561 / 1804 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 2 / 1 1826 / 1772 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 06498d2 to 2ac0d86 Compare July 24, 2026 08:24
@dd-octo-sts

dd-octo-sts Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 2ac0d86)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126722802 Commit: 2ac0d86a1982bf61e8174d7fd5fa7c55394d17b2

⚠️ Significant outliers

  • 🔴 fj-kmeans (JDK 21): runtime +5% (2685→2818 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10245 ms (21 iters) ✅ 10093 ms (21 iters) ≈ -1.5% (±10.3%) — / —
akka-uct 25 ✅ 8910 ms (24 iters) ✅ 8869 ms (24 iters) ≈ -0.5% (±10.5%) — / —
finagle-chirper 21 ✅ 5981 ms (33 iters) ✅ 6009 ms (33 iters) ≈ +0.5% (±25.9%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5487 ms (36 iters) ✅ 5436 ms (36 iters) ≈ -0.9% (±23.9%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2685 ms (70 iters) ✅ 2818 ms (66 iters) 🔴 +5% — / —
fj-kmeans 25 ✅ 2817 ms (66 iters) ✅ 2848 ms (66 iters) ≈ +1.1% (±2.6%) — / —
future-genetic 21 ✅ 2044 ms (90 iters) ✅ 2070 ms (89 iters) ≈ +1.3% (±2.6%) — / —
naive-bayes 21 ✅ 1275 ms (134 iters) ✅ 1269 ms (134 iters) ≈ -0.5% (±32.7%) — / —
naive-bayes 25 ✅ 989 ms (172 iters) ✅ 1008 ms (170 iters) ≈ +1.9% (±31.8%) — / —
reactors 21 ✅ 16268 ms (15 iters) ✅ 16862 ms (15 iters) ≈ +3.7% (±8.1%) — / —
reactors 25 ✅ 18210 ms (15 iters) ✅ 18675 ms (15 iters) ≈ +2.6% (±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 ✅ / ✅ ✅ / ✅ 1 / 1 1957 / 1942 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 3 / 2 2476 / 2341 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 4 8250 / 8576 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 2 8278 / 8162 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 2 / 2 1260 / 1277 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ ✅ / 2 1275 / 1306 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 2 / 3 2952 / 2904 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 2 / 4 3498 / 3512 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 7 / 14 3491 / 3491 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1682 / 1856 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / 1 1843 / 1987 ✅ / ✅ ✅ / ✅

@kaahos
kaahos force-pushed the paul.fournillon/taskblock-core branch from 2ac0d86 to efb6648 Compare July 24, 2026 13:47
@dd-octo-sts

dd-octo-sts Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit efb6648)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/126799351 Commit: efb6648edb36668a6fc13e696bfea5fe7a1b79f0

✅ Within expected boundaries

No significant runtime deltas (all within run-to-run noise) and no internal-counter outliers.

Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10286 ms (21 iters) ✅ 10369 ms (21 iters) ≈ +0.8% (±11.5%) — / —
akka-uct 25 ✅ 8919 ms (24 iters) ✅ 8780 ms (24 iters) ≈ -1.6% (±9.5%) — / —
finagle-chirper 21 ✅ 6023 ms (33 iters) ✅ 6029 ms (33 iters) ≈ +0.1% (±25%) ⚠️ W:3 / ⚠️ W:4
finagle-chirper 25 ✅ 5477 ms (36 iters) ✅ 5428 ms (36 iters) ≈ -0.9% (±24.1%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2757 ms (68 iters) ✅ 2777 ms (68 iters) ≈ +0.7% (±2.7%) — / —
fj-kmeans 25 ✅ 2820 ms (66 iters) ✅ 2817 ms (66 iters) ≈ -0.1% (±2.6%) — / —
future-genetic 21 ✅ 2109 ms (88 iters) ✅ 2112 ms (88 iters) ≈ +0.1% (±2.7%) — / —
future-genetic 25 ✅ 2057 ms (90 iters) ✅ 2017 ms (92 iters) ≈ -1.9% (±2.8%) — / —
naive-bayes 21 ✅ 1322 ms (129 iters) ✅ 1255 ms (136 iters) ≈ -5.1% (±32.6%) — / —
naive-bayes 25 ✅ 1025 ms (167 iters) ✅ 1012 ms (169 iters) ≈ -1.3% (±31.8%) — / —
reactors 25 ✅ 18206 ms (15 iters) ✅ 18525 ms (15 iters) ≈ +1.8% (±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 ✅ / ✅ ✅ / ✅ 2 / 2 2059 / 1982 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 2 / 1 2264 / 2246 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 2 / 1 8243 / 8374 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 2 8258 / 8616 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 2 / 4 1251 / 1307 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 4 / 1 1258 / 1269 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 2 / 4 3048 / 2973 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 2 2853 / 2897 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 3 / 5 3470 / 3514 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 3 / 4 3466 / 3493 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ ✅ / 1 1868 / 1848 ✅ / ✅ ✅ / ✅

@dd-octo-sts

dd-octo-sts Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 14fccf9)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/127025161 Commit: 14fccf98772f904129e364a79f92b98ae205535f

⚠️ Significant outliers

  • 🔴 future-genetic (JDK 21): runtime +4.1% (2065→2150 ms)
  • 🟢 future-genetic (JDK 25): runtime -8.4% (2110→1933 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10281 ms (21 iters) ✅ 10152 ms (21 iters) ≈ -1.3% (±10.7%) — / —
akka-uct 25 ✅ 8856 ms (24 iters) ✅ 8925 ms (24 iters) ≈ +0.8% (±10.3%) — / —
finagle-chirper 21 ✅ 5968 ms (33 iters) ✅ 6032 ms (33 iters) ≈ +1.1% (±25.7%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5418 ms (36 iters) ✅ 5508 ms (36 iters) ≈ +1.7% (±24.4%) ⚠️ W:3 / ⚠️ W:4
fj-kmeans 21 ✅ 2720 ms (68 iters) ✅ 2769 ms (67 iters) ≈ +1.8% (±2.7%) — / —
fj-kmeans 25 ✅ 2799 ms (67 iters) ✅ 2842 ms (66 iters) ≈ +1.5% (±2.6%) — / —
future-genetic 21 ✅ 2065 ms (91 iters) ✅ 2150 ms (86 iters) 🔴 +4.1% — / —
future-genetic 25 ✅ 2110 ms (88 iters) ✅ 1933 ms (96 iters) 🟢 -8.4% — / —
naive-bayes 21 ✅ 1261 ms (136 iters) ✅ 1265 ms (135 iters) ≈ +0.3% (±32.4%) — / —
naive-bayes 25 ✅ 1008 ms (170 iters) ✅ 1030 ms (166 iters) ≈ +2.2% (±32%) — / —
reactors 21 ✅ 16242 ms (15 iters) ✅ 16503 ms (15 iters) ≈ +1.6% (±9.4%) — / —
reactors 25 ✅ 18373 ms (15 iters) ✅ 18884 ms (15 iters) ≈ +2.8% (±5.4%) — / —
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 ✅ / ✅ ✅ / ✅ ✅ / 1 1960 / 1996 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 1 / 5 2054 / 2442 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 1 / 2 8622 / 8756 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 3 / ✅ 8264 / 8348 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 5 / ✅ 1261 / 1261 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 2 / 1 1264 / 1275 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 1 / ✅ 3035 / 2983 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ ✅ / 1 2938 / 2848 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 1 / 4 3471 / 3503 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 6 / 7 3479 / 3498 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1776 / 1588 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / ✅ 1931 / 1981 ✅ / ✅ ✅ / ✅

@dd-octo-sts

dd-octo-sts Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 114be60)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/127206270 Commit: 114be607d3b8f3432a335f1fd95edfe67f800d46

⚠️ Significant outliers

  • 🔴 future-genetic (JDK 21): runtime +4.4% (2056→2147 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10205 ms (21 iters) ✅ 10428 ms (21 iters) ≈ +2.2% (±11.8%) — / —
akka-uct 25 ✅ 8817 ms (24 iters) ✅ 8886 ms (24 iters) ≈ +0.8% (±9.7%) — / —
finagle-chirper 21 ✅ 5928 ms (33 iters) ✅ 5957 ms (33 iters) ≈ +0.5% (±25.5%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5430 ms (36 iters) ✅ 5526 ms (36 iters) ≈ +1.8% (±24.8%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2702 ms (70 iters) ✅ 2651 ms (71 iters) ≈ -1.9% (±2.6%) — / —
fj-kmeans 25 ✅ 2769 ms (68 iters) ✅ 2820 ms (66 iters) ≈ +1.8% (±2.7%) — / —
future-genetic 21 ✅ 2056 ms (90 iters) ✅ 2147 ms (86 iters) 🔴 +4.4% — / —
future-genetic 25 ✅ 2116 ms (87 iters) ✅ 2073 ms (89 iters) ≈ -2% (±2.6%) — / —
naive-bayes 21 ✅ 1263 ms (135 iters) ✅ 1251 ms (137 iters) ≈ -1% (±32.6%) — / —
naive-bayes 25 ✅ 994 ms (172 iters) ✅ 987 ms (173 iters) ≈ -0.7% (±31.6%) — / —
reactors 21 ✅ 15490 ms (16 iters) ✅ 16735 ms (15 iters) ≈ +8% (±8.9%) — / —
reactors 25 ✅ 18614 ms (15 iters) ✅ 18860 ms (15 iters) ≈ +1.3% (±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 ✅ / ✅ ✅ / ✅ 4 / 4 1880 / 1938 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ ✅ / ✅ 2293 / 2357 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 2 / 1 8420 / 8722 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 4 / 1 8634 / 8850 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ ✅ / 4 1284 / 1262 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ ✅ / 7 1311 / 1270 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 1 / ✅ 2977 / 2964 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 3 2927 / 2953 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 6 / 7 3510 / 3477 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ ✅ / 8 3516 / 3485 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 1 1683 / 1809 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 2 / ✅ 1855 / 1912 ✅ / ✅ ✅ / ✅

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