plockstat
Mutex Probes
Mutexes enforce mutual exclusion to critical
sections. When a thread attempts to acquire a mutex held by another
thread using mutex_lock
or
pthread_mutex_lock
, it will determine if
the owning thread is running on a different CPU. If it is, the
acquiring thread will spin for a short while
waiting for the mutex to become available. If the owner is not
executing on another CPU, the acquiring thread will
block.
The four plockstat
probes pertaining to mutexes are
described in the following list. For each probe,
arg0
contains a pointer to the
mutex_t
or
pthread_mutex_t
structure that represents
the mutex.
-
mutex-acquire
-
Hold event probe that fires immediately after a mutex is acquired.
arg1
contains a boolean value that indicates whether the acquisition was recursive on a recursive mutex.arg2
indicates the number of iterations that the acquiring thread spent spinning on this mutex.arg2
will be non-zero only if themutex-spin
probe fired on this mutex acquisition. -
mutex-block
-
Contention event probe that fires before a thread blocks on a held mutex. Both
mutex-block
andmutex-spin
might fire for a single lock acquisition. -
mutex-error
-
Error event probe that fires when an error is encountered on a mutex operation.
arg1
is theerrno
value for the error encountered. -
mutex-release
-
Hold event probe that fires immediately after an mutex is released.
arg1
contains a boolean value that indicates whether the event corresponds to a recursive release on a recursive mutex. -
mutex-spin
-
Contention event probe that fires before a thread begins spinning on a held mutex. Both
mutex-block
andmutex-spin
might fire for a single lock acquisition.