| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
POC follow-up to #614 evaluating whether moving the SignalInflight counter from a global atomic to per-thread storage on ProfiledThread is a viable alternative. - ProfiledThread: adds _jfr_inflight (atomic RMW on owner-thread write, ACQUIRE-read from drain), _registry_next intrusive pointer, and a spinlock-protected registry head. initCurrentThread / freeKey / current() insert / remove around the pthread_key lifecycle. - SignalInflight: enter/exit prefer the current ProfiledThread's per- thread counter; fall back to the existing global counter for threads that fire signals before initCurrentThread runs. drain() iterates the registry summing per-thread counters plus the fallback. Cache-line contention on the counter is eliminated on the fast path. The J9 longjmp leak documented in signalInflight.h is not yet closed by this commit (needs segvHandler/busHandler hooks to reset the current thread's slot before chaining) — left for a follow-up if the design survives review. Verified: buildDebug, compileRelease --rerun-tasks, ShutdownTest, JavaProfilerTest, CollapsingSleepTest, SmokeWallTest (all cstack modes).
CI Test ResultsRun: #28648085482 | Commit: d74b5e7 | Duration: 13m 42s (longest job)
Status Overview
Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled Summary: Total: 32 | Passed: 32 | Failed: 0 Updated: 2026-07-03 08:39:21 UTC |
Sorry, something went wrong.
Benchmark Results (commit c27d0bd)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/122534027 Commit: c27d0bdc7e863d2710ce3999d8e48d8ae372428f ⚠️ Significant outliers
ddprof internal counters, latest / dev (✅ = 0, · = unavailable):
|
Sorry, something went wrong.
⚠️ Warnings🚦 3 Pipeline jobs failed Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: 63a7ec5 | Docs | Datadog PR Page | Give us feedback! |
Sorry, something went wrong.
Reliability & Chaos Results❌ 1 failure(s) detected Pipeline: https://gitlab.ddbuild.io/DataDog/java-profiler/-/pipelines/123834391 ❌ chaos: profiler tcmalloc amd64 21 0 3 temXchaosChaos harness crashed (RC=124) |
Sorry, something went wrong.
|
@copilot resolve the merge conflicts in this pull request |
Sorry, something went wrong.
…from deleted thread.h to threadLocalData.h PR #615 (origin/main) renamed thread.cpp to threadLocalData.cpp and deleted thread.h, absorbing ProfiledThread into threadLocalData.h. Our branch had modified thread.h to add per-thread JFR-inflight tracking. Resolution: - Delete thread.h (accept deletion from main) - Port _registry_head/_registry_lock static members to threadLocalData.h - Port _jfr_inflight/_registry_next instance members to threadLocalData.h - Port enterJfrInflight/exitJfrInflight/jfrInflight methods to threadLocalData.h - Port forEachRegistered/registryInsert/registryRemove declarations to threadLocalData.h - Update signalInflight.cpp to include threadLocalData.h instead of thread.h - threadLocalData.cpp already has implementation (correctly auto-merged)
Merge conflicts resolved. The conflict arose because PR #615 (landed in origin/main) renamed thread.cpp → threadLocalData.cpp and deleted thread.h, absorbing ProfiledThread into threadLocalData.h. Our branch had modified thread.h to add the per-thread JFR-inflight tracking machinery. Resolution (commit fix: resolve merge conflict):
|
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
What does this PR do?
POC follow-up to #614. Moves the SignalInflight counter from a single global atomic to per-thread storage on ProfiledThread, to see if the alternative discussed in PROF-15268 holds up.
How
What this fixes vs #614
What this does not do
Local testing
buildDebug, compileRelease --rerun-tasks, ShutdownTest, JavaProfilerTest, CollapsingSleepTest, SmokeWallTest (all cstack modes). All green.
For Datadog employees