-
Notifications
You must be signed in to change notification settings - Fork 73
Thread trace triple buffering support for CDNA3/4 and RDNA4 #1581
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
base: develop
Are you sure you want to change the base?
Conversation
vlaindic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 1st part of the review. I was primarily asking questions about the aqlprofile part, and would be great is someone more familiar would take a look.
vlaindic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments. General idea looks fine to me.
projects/rocprofiler-sdk/source/include/rocprofiler-sdk/experimental/thread-trace/core.h
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/att-tool/profile_interface.cpp
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/att-tool/profile_interface.cpp
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk-tool/tool.cpp
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/packet_construct.cpp
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/threading.cpp
Outdated
Show resolved
Hide resolved
9cc6782 to
611445a
Compare
vlaindic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor comments. Otherwise, the overall implementation looks fine
projects/rocprofiler-sdk/source/include/rocprofiler-sdk/experimental/thread-trace/core.h
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/tests/producer_consumer.cpp
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/tests/producer_consumer.cpp
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/threading.cpp
Show resolved
Hide resolved
bing-ma
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The aqlprofile portion looks good to me. Left comments for some minor issues.
projects/aqlprofile/src/core/include/aqlprofile-sdk/aql_profile_v2.h
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/tests/producer_consumer.cpp
Outdated
Show resolved
Hide resolved
bing-ma
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The aqlprofile portion looks good to me.
vlaindic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for addressing comments! Minor comments about the tests and one question about the static scope. Otherwise, LGTM, so I approved.
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/dl.cpp
Outdated
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/tests/producer_consumer.cpp
Show resolved
Hide resolved
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/thread_trace/tests/producer_consumer.cpp
Outdated
Show resolved
Hide resolved
53a82a4 to
d3698df
Compare
f9d8056 to
d23743b
Compare
d23743b to
b8cbe16
Compare
Motivation
This PR adds triple buffering support for SQTT.
Limitations:
Technical Details
The aqlprofile implementation should work the any N buffers, however I have chosen triple buffering for the SDK as it appears to be a good tradeoff of memory use, lean way and easy of programming.
Test Plan
Test Result
Submission Checklist