FreeBSD kernel kern code
kern_lockstat.c File Reference
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/lock.h>
#include <sys/lockstat.h>
#include <sys/sdt.h>
#include <sys/time.h>
Include dependency graph for kern_lockstat.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
 SDT_PROVIDER_DEFINE (lockstat)
 
 SDT_PROBE_DEFINE1 (lockstat,,, adaptive__acquire, "struct mtx *")
 
 SDT_PROBE_DEFINE1 (lockstat,,, adaptive__release, "struct mtx *")
 
 SDT_PROBE_DEFINE2 (lockstat,,, adaptive__spin, "struct mtx *", "uint64_t")
 
 SDT_PROBE_DEFINE2 (lockstat,,, adaptive__block, "struct mtx *", "uint64_t")
 
 SDT_PROBE_DEFINE1 (lockstat,,, spin__acquire, "struct mtx *")
 
 SDT_PROBE_DEFINE1 (lockstat,,, spin__release, "struct mtx *")
 
 SDT_PROBE_DEFINE2 (lockstat,,, spin__spin, "struct mtx *", "uint64_t")
 
 SDT_PROBE_DEFINE2 (lockstat,,, rw__acquire, "struct rwlock *", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, rw__release, "struct rwlock *", "int")
 
 SDT_PROBE_DEFINE5 (lockstat,,, rw__block, "struct rwlock *", "uint64_t", "int", "int", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, rw__spin, "struct rwlock *", "uint64_t")
 
 SDT_PROBE_DEFINE1 (lockstat,,, rw__upgrade, "struct rwlock *")
 
 SDT_PROBE_DEFINE1 (lockstat,,, rw__downgrade, "struct rwlock *")
 
 SDT_PROBE_DEFINE2 (lockstat,,, sx__acquire, "struct sx *", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, sx__release, "struct sx *", "int")
 
 SDT_PROBE_DEFINE5 (lockstat,,, sx__block, "struct sx *", "uint64_t", "int", "int", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, sx__spin, "struct sx *", "uint64_t")
 
 SDT_PROBE_DEFINE1 (lockstat,,, sx__upgrade, "struct sx *")
 
 SDT_PROBE_DEFINE1 (lockstat,,, sx__downgrade, "struct sx *")
 
 SDT_PROBE_DEFINE2 (lockstat,,, lockmgr__acquire, "struct lock *", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, lockmgr__release, "struct lock *", "int")
 
 SDT_PROBE_DEFINE2 (lockstat,,, lockmgr__disown, "struct lock *", "int")
 
 SDT_PROBE_DEFINE5 (lockstat,,, lockmgr__block, "struct lock *", "uint64_t", "int", "int", "int")
 
 SDT_PROBE_DEFINE1 (lockstat,,, lockmgr__upgrade, "struct lock *")
 
 SDT_PROBE_DEFINE1 (lockstat,,, lockmgr__downgrade, "struct lock *")
 
 SDT_PROBE_DEFINE2 (lockstat,,, thread__spin, "struct mtx *", "uint64_t")
 
uint64_t lockstat_nsecs (struct lock_object *lo)
 

Variables

volatile bool __read_frequently lockstat_enabled
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ lockstat_nsecs()

uint64_t lockstat_nsecs ( struct lock_object *  lo)

Definition at line 78 of file kern_lockstat.c.

References bintime(), binuptime(), bt, and lockstat_enabled.

Referenced by __mtx_lock_sleep(), __rw_rlock_hard(), __rw_wlock_hard(), _sx_slock_hard(), _sx_xlock_hard(), lockmgr_slock_hard(), lockmgr_xlock_hard(), and thread_lock_flags_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SDT_PROBE_DEFINE1() [1/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
adaptive__acquire  ,
"struct mtx *"   
)

◆ SDT_PROBE_DEFINE1() [2/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
adaptive__release  ,
"struct mtx *"   
)

◆ SDT_PROBE_DEFINE1() [3/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
lockmgr__downgrade  ,
"struct lock *"   
)

◆ SDT_PROBE_DEFINE1() [4/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
lockmgr__upgrade  ,
"struct lock *"   
)

◆ SDT_PROBE_DEFINE1() [5/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
rw__downgrade  ,
"struct rwlock *"   
)

◆ SDT_PROBE_DEFINE1() [6/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
rw__upgrade  ,
"struct rwlock *"   
)

◆ SDT_PROBE_DEFINE1() [7/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
spin__acquire  ,
"struct mtx *"   
)

◆ SDT_PROBE_DEFINE1() [8/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
spin__release  ,
"struct mtx *"   
)

◆ SDT_PROBE_DEFINE1() [9/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
sx__downgrade  ,
"struct sx *"   
)

◆ SDT_PROBE_DEFINE1() [10/10]

SDT_PROBE_DEFINE1 ( lockstat  ,
sx__upgrade  ,
"struct sx *"   
)

◆ SDT_PROBE_DEFINE2() [1/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
adaptive__block  ,
"struct mtx *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE2() [2/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
adaptive__spin  ,
"struct mtx *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE2() [3/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
lockmgr__acquire  ,
"struct lock *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [4/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
lockmgr__disown  ,
"struct lock *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [5/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
lockmgr__release  ,
"struct lock *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [6/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
rw__acquire  ,
"struct rwlock *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [7/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
rw__release  ,
"struct rwlock *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [8/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
rw__spin  ,
"struct rwlock *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE2() [9/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
spin__spin  ,
"struct mtx *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE2() [10/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
sx__acquire  ,
"struct sx *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [11/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
sx__release  ,
"struct sx *"  ,
"int"   
)

◆ SDT_PROBE_DEFINE2() [12/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
sx__spin  ,
"struct sx *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE2() [13/13]

SDT_PROBE_DEFINE2 ( lockstat  ,
thread__spin  ,
"struct mtx *"  ,
"uint64_t"   
)

◆ SDT_PROBE_DEFINE5() [1/3]

SDT_PROBE_DEFINE5 ( lockstat  ,
lockmgr__block  ,
"struct lock *"  ,
"uint64_t"  ,
"int"  ,
"int"  ,
"int"   
)

◆ SDT_PROBE_DEFINE5() [2/3]

SDT_PROBE_DEFINE5 ( lockstat  ,
rw__block  ,
"struct rwlock *"  ,
"uint64_t"  ,
"int"  ,
"int"  ,
"int"   
)

◆ SDT_PROBE_DEFINE5() [3/3]

SDT_PROBE_DEFINE5 ( lockstat  ,
sx__block  ,
"struct sx *"  ,
"uint64_t"  ,
"int"  ,
"int"  ,
"int"   
)

◆ SDT_PROVIDER_DEFINE()

SDT_PROVIDER_DEFINE ( lockstat  )

Variable Documentation

◆ lockstat_enabled

volatile bool __read_frequently lockstat_enabled

Definition at line 75 of file kern_lockstat.c.

Referenced by lockstat_nsecs(), and thread_lock_flags_().