---
name: "jitterdebugger"
section: "1"
platform: "linux"
package: "jitterdebugger"
version: "0.3.1+git20200117.b90ff3a-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/jitterdebugger"
---

# jitterdebugger(1)

measures wake up latencies

## 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)](/jittersamples/1.md) [**jitterplot**(1)](/jitterplot/1.md)
