-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Concurrency] Add tracing for major operations in the concurrency runtime. #40070
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
Conversation
36e0231
to
15be195
Compare
74203fa
to
9f94ed0
Compare
a7cba96
to
a7352d2
Compare
stdlib/public/Concurrency/Actor.cpp
Outdated
concurrency::trace::actor_state_changed( \ | ||
this, newState.FirstJob.getRawJob(), \ | ||
newState.FirstJob.needsPreprocessing(), \ | ||
newState.FirstJob.isOverride(), newState.Flags.getOpaqueValue()); \ |
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.
Is there a goal that tracing makes any sense to anyone without knowledge of the current runtime implementation?
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.
Not at this level. The goal is to get the info out in a compact and fast manner, and then interpreting it into something more sensible for a human reader is up to whatever receives it.
1abb388
to
cdae7ed
Compare
@swift-ci please test |
cdae7ed
to
c18e9c1
Compare
@swift-ci please test |
c18e9c1
to
dabfb25
Compare
@swift-ci please test |
Build failed |
Build failed |
dabfb25
to
d43301c
Compare
@swift-ci please test |
Build failed |
d43301c
to
653a7df
Compare
@swift-ci please test |
Build failed |
@swift-ci please test |
Build failed |
Build failed |
653a7df
to
028584b
Compare
@swift-ci please test |
Build failed |
…time. Each trace point is declared as a function in the new `Tracing.h` header. These functions are called from the appropriate places in the concurrency runtime. On Darwin, an implementation of these functions is provided which uses the `os/signpost.h` API to emit signpost events/intervals. When the signpost API is not available, no-op stub implementations are provided. Implementations for other OSes can be provided by providing implementations of the trace functions for that OS. rdar://81858487
028584b
to
0977920
Compare
@swift-ci please test |
Build failed |
@swift-ci please test macOS platform |
Each trace point is declared as a function in the new
Tracing.h
header. These functions are called from the appropriate places in the concurrency runtime.On Darwin, an implementation of these functions is provided which uses the
os/signpost.h
API to emit signpost events/intervals.When the signpost API is not available, no-op stub implementations are provided. Implementations for other OSes can be provided by providing implementations of the trace functions for that OS.
rdar://81858487