summaryrefslogtreecommitdiffstats
path: root/src/seastar/debug/task-latency.stap
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())
	}
    }
}