Man Linux: Main Page and Category List


       ptsematest  - Start two threads and measure the latency of interprocess
       communication with POSIX mutex.


       ptsematest [-a|-a PROC] [-b USEC] [-d DIST] [-i INTV]  [-l  loops]  [-p
       PRIO] [-t|-t NUM]


       The  program  ptsematest  starts  two threads that are synchronized via
       pthread_mutex_unlock()/pthread_mutex_lock() and  measures  the  latency
       between releasing and getting the lock.


       -a, --affinity[=PROC]
              Run  on  procesor  number PROC. If PROC is not specified, run on
              current processor.

       -b, --breaktrace=USEC
              Send break  trace  command  when  latency  >  USEC.  This  is  a
              debugging  option  to control the latency tracer in the realtime
              preemption patch.  It is useful to track down  unexpected  large
              latencies of a system.

       -d, --distance=DIST
              Set the distance of thread intervals in microseconds (default is
              500 us). When  cylictest is called with the -t option  and  more
              than one thread is created, then this distance value is added to
              the   interval   of   the   threads:   Interval(thread   N)    =
              Interval(thread N-1) + DIST

       -i, --interval=INTV
              Set  the base interval of the thread(s) in microseconds (default
              is 1000 us). This sets the interval of  the  first  thread.  See
              also -d.

       -l, --loops=LOOPS
              Set the number of loops. The default is 0 (endless). This option
              is useful for automated  tests  with  a  given  number  of  test
              cycles. ptsematest is stopped once the number of timer intervals
              has been reached.

       -p, --prio=PRIO
              Set the priority of the process.

       -t, --threads[=NUM]
              Set the number of test threads (default is 1, if this option  is
              not given). If NUM is specified, create NUM test threads. If NUM
              is not specifed, NUM is set to the number of available CPUs.


       The following example was running on a 4-way processor:

       # ptsematest -a -t -p99 -i100 -d25 -l1000000
       #0: ID8672, P99, CPU0, I100; #1: ID8673, P99, CPU0, Cycles 1000000
       #2: ID8674, P98, CPU1, I125; #3: ID8675, P98, CPU1, Cycles 811035
       #4: ID8676, P97, CPU2, I150; #5: ID8677, P97, CPU2, Cycles 668130
       #6: ID8678, P96, CPU3, I175; #7: ID8679, P96, CPU3, Cycles 589423
       #1 -> #0, Min    1, Cur    1, Avg    2, Max   11
       #3 -> #2, Min    1, Cur    2, Avg    2, Max   13
       #5 -> #4, Min    1, Cur    4, Avg    3, Max   12
       #7 -> #6, Min    1, Cur    4, Avg    2, Max   12


       Carsten Emde <>


       pthread_mutex_lock(3p), pthread_mutex_unlock(3p)

                                      0.1                        ptsematest(8)