blob: 066109823dc7722a0716e84b5820bd2ef8a49157 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/usr/bin/stap
# usage: task_latency.stap process_name latency_threshold_ms
global start_time
probe process(@1).mark("reactor_run_tasks_single_start") {
start_time[tid()] = gettimeofday_us()
}
probe process(@1).mark("reactor_run_tasks_single_end") {
delete start_time[tid()]
}
probe timer.profile {
if ([tid()] in start_time) {
now = gettimeofday_us()
start = start_time[tid()]
if ((now - start) > $2 * 1000) {
printf("detected tasks running for >%sms\n", @2)
print_usyms(ubacktrace())
}
}
}
|