Sindbad~EG File Manager
#!/usr/bin/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
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists