pip_stress creates a priority inversion using three processes and a priority inheritance mutex shared via shared memory. All three processes are bound to run on the same cpu. The process with the lowest priority holds a mutex and is prempted by the medium priority process that just runs an infinite loop. The third process with the highest priority tries to grab the mutex that is hold by the low prio process. As a priority inheritance mutex is used the low priority process lends the high priority process' priority to unlock the mutex and so stops the medium priority process blocking the high priority one.

pip_stress doesn't take any options and quits as soon as the priority inversion is resolved which should happen instantly.


pip_stress was written by John Kacur <[email protected]>.