-
-
Notifications
You must be signed in to change notification settings - Fork 419
/
Copy pathdtrace_probes.d
197 lines (166 loc) · 5.43 KB
/
dtrace_probes.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
provider pony {
/**
* Fired when a actor is being created
* @param scheduler is the scheduler that created the actor
* @actor is the actor that was created
*/
probe actor__alloc(uintptr_t scheduler, uintptr_t actor);
/**
* Fired when a message is being send
* @param scheduler is the active scheduler
* @param id the message id
* @param actor_from is the sending actor
* @param actor_to is the receiving actor
*/
probe actor__msg__send(uintptr_t scheduler, uint32_t id, uintptr_t actor_from, uintptr_t actor_to);
/**
* Fired when a message is being run by an actor
* @param actor the actor running the message
* @param id the message id
*/
probe actor__msg__run(uintptr_t scheduler, uintptr_t actor, uint32_t id);
/**
* Fired when a message is being sent to an actor
* @param scheduler is the active scheduler's index
* @param id the message id
* @param actor_from is the sending actor
* @param actor_to is the receiving actor
*/
probe actor__msg__push(int32_t scheduler_index, uint32_t id, uintptr_t actor_from, uintptr_t actor_to);
/**
* Fired when a message is being run by an actor
* @param scheduler is the active scheduler's index
* @param id the message id
* @param actor_to is the receiving actor
*/
probe actor__msg__pop(int32_t scheduler_index, uint32_t id, uintptr_t actor);
/**
* Fired when a message is being sent to an thread
* @param id the message id
* @param thread_from is the sending thread index
* @param thread_to is the receiving thread index
*/
probe thread__msg__push(uint32_t id, uintptr_t thread_from, uintptr_t thread_to);
/**
* Fired when a message is being run by an thread
* @param id the message id
* @param thread_to is the receiving thread index
*/
probe thread__msg__pop(uint32_t id, uintptr_t thread);
/**
* Fired when actor is scheduled
* @param scheduler is the scheduler that scheduled the actor
* @param actor is the scheduled actor
*/
probe actor__scheduled(uintptr_t scheduler, uintptr_t actor);
/**
* Fired when actor is descheduled
* @param scheduler is the scheduler that descheduled the actor
* @param actor is the descheduled actor
*/
probe actor__descheduled(uintptr_t scheduler, uintptr_t actor);
/**
* Fired when actor becomes overloaded
* @param actor is the overloaded actor
*/
probe actor__overloaded(uintptr_t actor);
/**
* Fired when actor stops being overloaded
* @param actor is the no longer overloaded actor
*/
probe actor__overloaded__cleared(uintptr_t actor);
/**
* Fired when actor is under pressure
* @param actor is the under pressure actor
*/
probe actor__under__pressure(uintptr_t actor);
/**
* Fired when actor is no longer under pressure
* @param actor is the no longer under pressure actor
*/
probe actor__pressure__released(uintptr_t actor);
/**
* Fired when actor is muted
* @param actor is the muted actor
*/
probe actor__muted(uintptr_t actor);
/**
* Fired when actor is no longer muted
* @param actor is the no longer muted actor
*/
probe actor__unmuted(uintptr_t actor);
/**
* Fired when cpu goes into nanosleep
* @param ns is nano seconds spent in sleep
*/
probe cpu__nanosleep(uint64_t ns);
/**
* Fired when the garbage collection function is ending
*/
probe gc__end(uintptr_t scheduler);
/**
* Fired when the garbage collector finishes sending an object
*/
probe gc__send__end(uintptr_t scheduler);
/**
* Fired when the garbage collector stats sending an object
*/
probe gc__send__start(uintptr_t scheduler);
/**
* Fired when the garbage collector finishes receiving an object
*/
probe gc__recv__end(uintptr_t scheduler);
/**
* Fired when the garbage collector starts receiving an object
*/
probe gc__recv__start(uintptr_t scheduler);
/**
* Fired when the garbage collection function has started
*/
probe gc__start(uintptr_t scheduler);
/**
* Fired when the garbage collection threshold is changed with a certain factor
* @param factor the factor with which the GC threshold is changed
*/
probe gc__threshold(double factor);
/**
* Fired when memory is allocated on the heap
* @param size the size of the allocated memory
*/
probe heap__alloc(uintptr_t scheduler, unsigned long size);
/**
* Fired when runtime initiates
*/
probe rt__init();
/**
* Fired when runtime is initiated and the program starts
*/
probe rt__start();
/**
* Fired when runtime shutdown is started
*/
probe rt__end();
/**
* Fired when a scheduler successfully steals a job
* @param scheduler is the scheduler that stole the job
* @param victim is the victim that the scheduler stole from
* @param actor is actor that was stolen from the victim
*/
probe work__steal__successful(uintptr_t scheduler, uintptr_t victim, uintptr_t actor);
/**
* Fired when a scheduler fails to steal a job
* @param scheduler is the scheduler that attempted theft
* @param victim is the victim that the scheduler attempted to steal from
*/
probe work__steal__failure(uintptr_t scheduler, uintptr_t victim);
/**
* Fired when a scheduler suspends
* @param scheduler is the scheduler that suspended
*/
probe thread__suspend(uintptr_t scheduler);
/**
* Fired when a scheduler resumes
* @param scheduler is the scheduler that resumed
*/
probe thread__resume(uintptr_t scheduler);
};