File: task-latency.stap

package info (click to toggle)
seastar 25.05.0-1
  • links: PTS
  • area: main
  • in suites: sid
  • size: 7,256 kB
  • sloc: cpp: 89,250; python: 5,066; ansic: 3,452; sh: 1,272; xml: 177; makefile: 9
file content (24 lines) | stat: -rwxr-xr-x 563 bytes parent folder | download | duplicates (5)
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())
	}
    }
}