1sigwaittest(8)                                                  sigwaittest(8)
2
3
4

NAME

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

SYNTAX

10       sigwaittest [-a|--affinity PROC] [-b|--breaktrace USEC]  [-d|--distance
11       DIST]  [-D|--duration  TIME]  [-f|--fork  [OPT]]  [-i|--interval  INTV]
12       [--json FILENAME] [-l|--loops  LOOPS]  [-p|--prio  PRIO]  [-t|--threads
13       [NUM]]
14

DESCRIPTION

16       The  program  sigwaittest  starts two threads or, optionally, forks two
17       processes that are synchronized via signals and  measures  the  latency
18       between sending a signal and returning from sigwait().
19

OPTIONS

21       -a, --affinity[=PROC]
22              Run  on  processor number PROC. If PROC is not specified, run on
23              current processor.
24
25       -b, --breaktrace=USEC
26              Send break trace command when latency > USEC. This is  a  debug‐
27              ging  option  to control the latency tracer in the realtime pre‐
28              emption patch.  It is useful to track down unexpected large  la‐
29              tencies of a system.
30
31       -d, --distance=DIST
32              Set the distance of thread intervals in microseconds (default is
33              500 us). When  cyclictest is called with the -t option and  more
34              than one thread is created, then this distance value is added to
35              the  interval  of  the  threads:  Interval(thread  N)  =  Inter‐
36              val(thread N-1) + DIST
37
38       -D, --duration=TIME
39              Specify a length for the test run.
40              Append 'm', 'h', or 'd' to specify minutes, hours or days.
41
42       -f, --fork[=OPT]
43              Instead  of  creating  threads  (which is the default), fork new
44              processes
45
46       -i, --interval=INTV
47              Set the base interval of the thread(s) in microseconds  (default
48              is  1000  us).  This  sets the interval of the first thread. See
49              also -d.
50
51       --json=FILENAME
52              Write final results into FILENAME, JSON formatted.
53
54       -l, --loops=LOOPS
55              Set the number of loops. The default is 0 (endless). This option
56              is  useful  for  automated tests with a given number of test cy‐
57              cles. sigwaittest is stopped once the number of timer  intervals
58              has been reached.
59
60       -p, --prio=PRIO
61              Set the priority of the process.
62
63       -t, --threads[=NUM]
64              Set  the number of test threads (default is 1, if this option is
65              not given). If NUM is specified, create NUM test threads. If NUM
66              is not specified, NUM is set to the number of available CPUs.
67

EXAMPLES

69       The following example was running on a 4-way CPU:
70
71       # sigwaittest -a -t -p99 -i100 -d25 -l1000000
72       #0: ID11510, P99, CPU0, I100; #1: ID11511, P99, CPU0, Cycles 1000000
73       #2: ID11512, P98, CPU1, I125; #3: ID11513, P98, CPU1, Cycles 817484
74       #4: ID11514, P97, CPU2, I150; #5: ID11515, P97, CPU2, Cycles 668213
75       #6: ID11516, P96, CPU3, I175; #7: ID11517, P96, CPU3, Cycles 597344
76       #1 -> #0, Min    1, Cur    2, Avg    3, Max   30
77       #3 -> #2, Min    1, Cur   26, Avg    3, Max   42
78       #5 -> #4, Min    1, Cur   46, Avg    4, Max   67
79       #7 -> #6, Min    1, Cur    2, Avg    3, Max   74
80

AUTHORS

82       Carsten Emde <C.Emde@osadl.org>
83

SEE ALSO

85       kill(2), sigwait(3)
86
87
88
89                                      0.1                       sigwaittest(8)
Impressum