Skip to content

Commit

Permalink
new tool wakesnoop
Browse files Browse the repository at this point in the history
wakesnoop attaches to scheduler tracepoints sched_waking and sched_wakeup,
and measures delay of wakeup.
  • Loading branch information
makelinux committed Apr 4, 2024
1 parent 1fc1c41 commit e38b053
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
43 changes: 43 additions & 0 deletions sched/wakesnoop.bt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env bpftrace
/*
* latsnoop.bt Scheduler latency tracing tool.
*
* USAGE:
* ./latsnoop.bt [wakeup delay threshold, us] [cpu mask] [pid]
*
* Copyright 2024 Red Hat, Inc.
* Licensed under the Apache License, Version 2.0 (the "License").
*
* 4-Apr-2024 Costa Shulyupin Initial release
*/

BEGIN
{
printf("Tracing scheduler delay and in microseconds. Ctrl-C to end.\n");
printf("%-15s %9s %3s %7s %s\n", "TIME", "DELAY(us)", "CPU", "PID", "COMM");
}


tracepoint:sched:sched_waking,
/!$3 || args.pid == $3/
{
@waking[args.pid] = nsecs;
}

tracepoint:sched:sched_wakeup
/(!$3 || args.pid == $3) && @waking[args.pid] /
{
$delay = (nsecs - @waking[args.pid]) / 1000;
@sched_wakeup_delay_max = max($delay);
if ($delay > $1 && (!$2 || 1 << args.target_cpu & $2)) {
printf("%s %9u %3u %7d %s\n",
strftime("%H:%M:%S.%f", @waking[args.pid]), $delay, args.target_cpu,
args.pid, args.comm);
}
delete(@waking[args.pid]);
}

END
{
clear(@waking);
}
16 changes: 16 additions & 0 deletions sched/wakesnoop_example.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Demonstration of wakesnoop.

wakesnoop attaches to scheduler tracepoints sched_waking and sched_wakeup
and measures delay of wakeup.

# ./sched/wakesnoop.bt 100
Attaching 4 probes...
Tracing scheduler delay and in microseconds. Ctrl-C to end.
TIME DELAY(us) CPU PID COMM
21:49:23.425949 123 7 6124 pulseaudio
21:49:23.534792 116 8 32155 VizCompositorTh
21:49:24.213697 145 5 6124 pulseaudio
21:49:24.315695 113 5 6124 pulseaudio
21:49:24.603702 107 5 6124 pulseaudio
21:49:24.652704 107 5 444683 kworker/u25:3

0 comments on commit e38b053

Please sign in to comment.