1sigwaittest(8) sigwaittest(8)
2
3
4
5# SPDX-License-Identifier: GPL-2.0-only
6
8 sigwaittest - Start two threads or fork two processes and measure the
9 latency between sending and receiving a signal
10
12 sigwaittest [-a|--affinity PROC] [-b|--breaktrace USEC] [-d|--distance
13 DIST] [-D|--duration TIME] [-f|--fork [OPT]] [-i|--interval INTV]
14 [--json FILENAME] [-l|--loops LOOPS] [-p|--prio PRIO] [-t|--threads
15 [NUM]]
16
18 The program sigwaittest starts two threads or, optionally, forks two
19 processes that are synchronized via signals and measures the latency
20 between sending a signal and returning from sigwait().
21
23 -a, --affinity[=PROC]
24 Run on processor number PROC. If PROC is not specified, run on
25 current processor.
26
27 -b, --breaktrace=USEC
28 Send break trace command when latency > USEC. This is a debug‐
29 ging option to control the latency tracer in the realtime pre‐
30 emption patch. It is useful to track down unexpected large la‐
31 tencies of a system.
32
33 -d, --distance=DIST
34 Set the distance of thread intervals in microseconds (default is
35 500 us). When cyclictest is called with the -t option and more
36 than one thread is created, then this distance value is added to
37 the interval of the threads: Interval(thread N) = Inter‐
38 val(thread N-1) + DIST
39
40 -D, --duration=TIME
41 Specify a length for the test run.
42 Append 'm', 'h', or 'd' to specify minutes, hours or days.
43
44 -f, --fork[=OPT]
45 Instead of creating threads (which is the default), fork new
46 processes
47
48 -i, --interval=INTV
49 Set the base interval of the thread(s) in microseconds (default
50 is 1000 us). This sets the interval of the first thread. See
51 also -d.
52
53 --json=FILENAME
54 Write final results into FILENAME, JSON formatted.
55
56 -l, --loops=LOOPS
57 Set the number of loops. The default is 0 (endless). This option
58 is useful for automated tests with a given number of test cy‐
59 cles. sigwaittest is stopped once the number of timer intervals
60 has been reached.
61
62 -p, --prio=PRIO
63 Set the priority of the process.
64
65 -t, --threads[=NUM]
66 Set the number of test threads (default is 1, if this option is
67 not given). If NUM is specified, create NUM test threads. If NUM
68 is not specified, NUM is set to the number of available CPUs.
69
71 The following example was running on a 4-way CPU:
72
73 # sigwaittest -a -t -p99 -i100 -d25 -l1000000
74 #0: ID11510, P99, CPU0, I100; #1: ID11511, P99, CPU0, Cycles 1000000
75 #2: ID11512, P98, CPU1, I125; #3: ID11513, P98, CPU1, Cycles 817484
76 #4: ID11514, P97, CPU2, I150; #5: ID11515, P97, CPU2, Cycles 668213
77 #6: ID11516, P96, CPU3, I175; #7: ID11517, P96, CPU3, Cycles 597344
78 #1 -> #0, Min 1, Cur 2, Avg 3, Max 30
79 #3 -> #2, Min 1, Cur 26, Avg 3, Max 42
80 #5 -> #4, Min 1, Cur 46, Avg 4, Max 67
81 #7 -> #6, Min 1, Cur 2, Avg 3, Max 74
82
84 Carsten Emde <C.Emde@osadl.org>
85
87 kill(2), sigwait(3)
88
89
90
91 0.1 sigwaittest(8)