DOKK / manpages / debian 12 / jitterdebugger / jitterdebugger.1.en
JITTERDEBUGGER(1) General Commands Manual JITTERDEBUGGER(1)

jitterdebugger - measures wake up latencies

jitterdebugger [OPTIONS]

jitterdebugger measures wake up latencies. jitterdebugger starts a thread on each CPU which programs a timer and measures the time it takes from the timer expiring until the thread which set the timer runs again.

jitterdebugger default settings will produce a correct meassurement.

The program runs until CTRL-C or SIGTERM is received. The results are printed to STDOUT as JSON encoded string.

Show help text and exit.
Show live updates of the measurments
Write the results into the FILE
Start workload CMD in background, e.g. -c "while true; do; hackbench; done". The CMD is executed in a full shell, that means VARIABLE expansion works as well. When jitterdebugger terminates itself (because of break value or loops), the background workload is also terminated.
Send samples to SERVER:PORT as UDP packets. See also jittersamples --listen.
Run meassurments for N seconds. N is allowed to be postfix with 'd' (days), 'h' (hours), 'm' (minutes) or 's' seconds.
Run meassurments N times and the terminate jitterdebugger.
Run jitterdebugger until the N or greater latency has been observed. jitterdebugger will also stop a running tracer by writing 0 to tracing/tracing_on. Furthermore, the value observed will be written to the trace buffers tracing/trace_marker, e.g "Hit latency 249".
Set the sleep time between each measuring. The default value is 1000us
Write all samples measured into directory DIR. The file is called samples.raw and it is binary encoded and can be decoded using jittersamples. Additional meta data is stored into DIR.
Set the CPU affinity mask. jitterdebugger starts only meassuring threads on CPUSET,. e.g. 0,2,5-7 starts a thread on first, third and 5, 6 and 7 CPU. May also be set in hexadecimal with '0x' prefix
Set the priority of the meassuring threads. The default value is 98. Note priority 99 is not available because 99 should only be used for kernel housekeeping tasks.

# jitterdebugger  -v
affinity: 0,1 = 2 [0x3]
T: 0 (  614) A: 0 C:     13476 Min:         3 Avg:    3.08 Max:        10
T: 1 (  615) A: 1 C:     13513 Min:         3 Avg:    3.10 Max:        20
^C
{

"cpu": {
"0": {
"histogram": {
"3": 4070,
"4": 269,
"5": 26,
"6": 5,
"7": 1,
"8": 1,
"9": 2,
"10": 1
},
"count": 4375,
"min": 3,
"max": 10,
"avg": 3.08
},
"1": {
"histogram": {
"3": 4002,
"4": 320,
"5": 22,
"6": 4,
"7": 2,
"8": 1,
"10": 2,
"11": 1,
"16": 2,
"20": 1
},
"count": 4357,
"min": 3,
"max": 20,
"avg": 3.10
}
} }

jittersamples(1) jitterplot(1)