JITTERDEBUGGER(1)

NAME
jitterdebugger - measures wake up latencies

SYNOPSIS
jitterdebugger [OPTIONS]

DESCRIPTION
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.

OPTIONS

-h, --help
    Show help text and exit.

-v, --verbose
    Show live updates of the measurments

-f, --file=FILE
    Write the results into the FILE

-c, --command=CMD
    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.

-N SERVER:PORT
    Send samples to SERVER:PORT as UDP packets. See also jittersamples --listen.

-t, --timeout=N
    Run meassurments for N seconds. N is allowed to be postfix with 'd' (days), 'h' (hours), 'm' (minutes) or 's' seconds.

-l, --loops=N
    Run meassurments N times and the terminate jitterdebugger.

-b, --break=N
    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".

-i, --interval=N
    Set the sleep time between each measuring. The default value is 1000us

-o, --output=DIR
    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.

-a, --affinity=CPUSET
    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

-p, --priority=PRI
    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.

EXAMPLES
    # 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
        }
      }
    }

SEE ALSO
jittersamples(1) jitterplot(1)