#! /usr/bin/env stap # inspired by Tom Zanussi's example from https://lkml.org/lkml/2017/2/8/996 global ts0%, latency% function now() { return gettimeofday_us() } probe kernel.trace("sched_wakeup") { ts0[$p->pid] = now() } probe kernel.trace("sched_switch") { if (ts0[$next->pid]) latency[$next->pid,$next->prio] <<< now() - ts0[$next->pid]; } probe timer.s(5) { foreach ([pid+,x] in latency) { println("pid:", pid, " prio:", x) print(@hist_log(latency[pid,x])) } delete latency }