Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup JVMTI sampling implementation #174

Merged
merged 1 commit into from
Jan 28, 2025
Merged

Cleanup JVMTI sampling implementation #174

merged 1 commit into from
Jan 28, 2025

Conversation

jbachorik
Copy link
Collaborator

@jbachorik jbachorik commented Jan 28, 2025

What does this PR do?:
It cleans up the JVMTI based sampling implementation.

Motivation:
Preparation for downporting the vmstructs based stackwalker.

Additional Notes:
An added benefit is reduced allocations thanks to reused JVMTI frame buffers.

For the liveness tracking, we stop copying the frames and store the trace in CallTraceStorage and persist the trace id instead. The live heap profiler in async-profiler is doing similar thing.

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 review from @DataDog/security-design-and-guidance.
  • This PR doesn't touch any of that.
  • JIRA: PROF-11238

Unsure? Have a question? Request a review!

@jbachorik jbachorik requested a review from MattAlp January 28, 2025 17:24
Copy link

github-actions bot commented Jan 28, 2025

🔧 Report generated by pr-comment-scanbuild

Scan-Build Report

User:runner@fv-az2035-324
Working Directory:/home/runner/work/java-profiler/java-profiler/ddprof-lib/src/test/make
Command Line:make -j4 clean all
Clang Version:Ubuntu clang version 18.1.3 (1ubuntu1)
Date:Tue Jan 28 18:08:39 2025

Bug Summary

Bug TypeQuantityDisplay?
All Bugs5
Logic error
Dereference of null pointer3
Suspicious operation
Bitwise shift1
Unused code
Dead nested assignment1

Reports

Bug Group Bug Type ▾ File Function/Method Line Path Length
Suspicious operationBitwise shiftvmStructs.cppfind87216
Unused codeDead nested assignmentvmStructs.cppcheckNativeBinding9771
Logic errorDereference of null pointersafeAccess.hload3318
Logic errorDereference of null pointersymbols_linux.hElfParser12928
Logic errorDereference of null pointerflightRecorder.cppflush15138

Copy link

github-actions bot commented Jan 28, 2025

🔧 Report generated by pr-comment-cppcheck

CppCheck Report

Warnings (7)

Style Violations (404)

@jbachorik jbachorik force-pushed the jb/reuse_frames branch 5 times, most recently from ce93a06 to e33fed4 Compare January 28, 2025 17:46
@jbachorik jbachorik merged commit bf74bf8 into main Jan 28, 2025
44 checks passed
@jbachorik jbachorik deleted the jb/reuse_frames branch January 28, 2025 18:20
@github-actions github-actions bot added this to the 1.20.0 milestone Jan 28, 2025
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