1svsematest(8) svsematest(8)
2
3
4
6 svsematest - Start two threads or fork two processes and measure the
7 latency of SYSV semaphores
8
10 svsematest [-a|-a PROC] [-b USEC] [-d DIST] [-f] [-i INTV] [-l loops]
11 [-p PRIO] [-t|-t NUM]
12
14 The program svsematest starts two threads or, optionally, forks two
15 processes that are synchronized via SYSV semaphores and measures the
16 latency between releasing a semaphore on one side and getting it on the
17 other side.
18
20 -a, --affinity[=PROC]
21 Run on processor number PROC. If PROC is not specified, run on
22 current processor.
23
24 -b, --breaktrace=USEC
25 Send break trace command when latency > USEC. This is a debug‐
26 ging option to control the latency tracer in the realtime pre‐
27 emption patch. It is useful to track down unexpected large
28 latencies of a system.
29
30 -d, --distance=DIST
31 Set the distance of thread intervals in microseconds (default is
32 500 us). When cyclictest is called with the -t option and more
33 than one thread is created, then this distance value is added to
34 the interval of the threads: Interval(thread N) = Inter‐
35 val(thread N-1) + DIST
36
37 -D, --duration=TIME
38 Specify a length for the test run.
39 Append 'm', 'h', or 'd' to specify minutes, hours or days.
40
41 -f, --fork
42 Instead of creating threads (which is the default), fork new
43 processes
44
45 -i, --interval=INTV
46 Set the base interval of the thread(s) in microseconds (default
47 is 1000 us). This sets the interval of the first thread. See
48 also -d.
49
50 -l, --loops=LOOPS
51 Set the number of loops. The default is 0 (endless). This option
52 is useful for automated tests with a given number of test
53 cycles. svsematest is stopped once the number of timer intervals
54 has been reached.
55
56 -p, --prio=PRIO
57 Set the priority of the process.
58
59 -S, --smp
60 SMP testing: options -a -t and same priority of all threads
61
62 -t, --threads[=NUM]
63 Set the number of test threads (default is 1, if this option is
64 not given). If NUM is specified, create NUM test threads. If NUM
65 is not specified, NUM is set to the number of available CPUs.
66
68 The following example was running on a 4-way CPU:
69
70 # svsematest -a -t -p99 -i100 -d25 -l1000000
71 #0: ID13110, P99, CPU0, I100; #1: ID13111, P99, CPU0, Cycles 1000000
72 #2: ID13112, P98, CPU1, I125; #3: ID13113, P98, CPU1, Cycles 813573
73 #4: ID13114, P97, CPU2, I150; #5: ID13115, P97, CPU2, Cycles 667285
74 #6: ID13116, P96, CPU3, I175; #7: ID13117, P96, CPU3, Cycles 591403
75 #1 -> #0, Min 1, Cur 2, Avg 2, Max 12
76 #3 -> #2, Min 1, Cur 3, Avg 2, Max 12
77 #5 -> #4, Min 1, Cur 3, Avg 3, Max 12
78 #7 -> #6, Min 1, Cur 2, Avg 3, Max 11
79
81 Carsten Emde <C.Emde@osadl.org>
82
84 semop(2)
85
86 0.1 svsematest(8)