1sigwaittest(8)                                                  sigwaittest(8)
2
3
4
5# SPDX-License-Identifier: GPL-2.0-only
6

NAME

8       sigwaittest  -  Start two threads or fork two processes and measure the
9       latency between sending and receiving a signal
10

SYNTAX

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

DESCRIPTION

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

OPTIONS

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

EXAMPLES

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

AUTHORS

84       Carsten Emde <C.Emde@osadl.org>
85

SEE ALSO

87       kill(2), sigwait(3)
88
89
90
91                                      0.1                       sigwaittest(8)
Impressum