/* * runqlat.bt CPU scheduler run queue latency as a histogram. * For Linux, uses bpftrace, eBPF. * * This is a bpftrace version of the bcc tool of the same name. * * Copyright 2018 Netflix, Inc. * Licensed under the Apache License, Version 2.0 (the "License") * * 17-Sep-2018 Brendan Gregg Created this. * 07-Apr-2020 Andreas Gerstmayr Modified for usage with PCP bpftrace PMDA. */ // include: @usecs #include tracepoint:sched:sched_wakeup, tracepoint:sched:sched_wakeup_new { @qtime[args->pid] = nsecs; } tracepoint:sched:sched_switch { if (args->prev_state == TASK_RUNNING) { @qtime[args->prev_pid] = nsecs; } $ns = @qtime[args->next_pid]; if ($ns) { @usecs = hist((nsecs - $ns) / 1000); } delete(@qtime[args->next_pid]); }