pi_stress - a stress test for POSIX Priority Inheritance mutexes
pi_stress [-i|--inversions inversions] [-t|--duration seconds]
[-g|--groups groups [-d|--debug] [-v|--verbose] [-s|--signal] [-r|--rr]
[-p|--prompt] [-m|--mlockall] [-u|--uniprocessor]
pi_stress is a program used to stress the priority-inheritance code
paths for POSIX mutexes, in both the Linux kernel and the C library. It
runs as a realtime-priority task and launches inversion machine thread
groups. Each inversion group causes a priorty inversion condition that
will deadlock if priority inheritance doesn’t work.
Run for n number of inversion conditions. This is the total
number of inversions for all inversion groups. Default is -1 for
Run the test for n seconds and then terminate.
The number of inversion groups to run. Defaults to 10.
Run in debug mode; lots of extra prints
Run with verbose messages
Terminate on receipt of SIGTERM (Ctrl-C). Default is to
terminate on any keypress.
Run inversion group threads as SCHED_RR (round-robin). The
default is to run the inversion threads as SCHED_FIFO.
Prompt before actually starting the stress test
Run all threads on one processor. The default is to run all
inversion group threads on one processor and the admin threads
(reporting thread, keyboard reader, etc.) on a different
Call mlockall to lock current and future memory allocations and
prevent being paged out
Display a short help message and options.
The pi_stress test threads run as SCHED_FIFO or SCHED_RR threads, which
means that they can starve critical system threads. It is advisable to
change the scheduling policy of critical system threads to be
SCHED_FIFO prior to running pi_stress and use a priority of 10 or
higher, to prevent those threads from being starved by the stress test.
No documented bugs.
Clark Williams <email@example.com>
Nov 27, 2006 pi_stress(8)