mirror_zfs/include/sys
Olaf Faaland 692ae8d398 Add new lock types MUTEX_NOLOCKDEP, and RW_NOLOCKDEP
When running a kernel with CONFIG_LOCKDEP=y, lockdep reports possible
recursive locking in some cases and possible circular locking dependency
in others, within the SPL and ZFS modules.

When lockdep detects these conditions, it disables further lock analysis
for all locks.  This causes /proc/lock_stats not to reflect full
information about lock contention, even in locks without dependency
issues.

This commit creates a new type of mutex, MUTEX_NOLOCKDEP.  This mutex
type causes subsequent attempts to take or release those locks to be
wrapped in lockdep_off() and lockdep_on().

This commit also creates an RW_NOLOCKDEP type analagous to
MUTEX_NOLOCKDEP.

MUTEX_NOLOCKDEP and RW_NOLOCKDEP are also defined in zfs, in a commit to
that repo, for userspace builds.

Signed-off-by: Olaf Faaland <faaland1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #480
2015-12-11 16:18:54 -08:00
..
fm Kernel header installation should respect --prefix 2014-10-28 09:31:48 -07:00
fs Kernel header installation should respect --prefix 2014-10-28 09:31:48 -07:00
sysevent Kernel header installation should respect --prefix 2014-10-28 09:31:48 -07:00
acl_impl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
acl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
atomic.h Remove atomic64_xchg() wrappers 2014-10-17 15:11:50 -07:00
attr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bitmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bootconf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bootprops.h Refresh links to web site 2013-03-04 19:09:34 -08:00
buf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
byteorder.h Refresh links to web site 2013-03-04 19:09:34 -08:00
callb.h Refresh links to web site 2013-03-04 19:09:34 -08:00
callo.h Emulate illumos interface cv_timedwait_hires() 2013-11-04 09:49:24 -08:00
cmn_err.h Refresh links to web site 2013-03-04 19:09:34 -08:00
compress.h Refresh links to web site 2013-03-04 19:09:34 -08:00
condvar.h Rename cv_wait_interruptible() to cv_wait_sig() 2015-06-10 16:36:12 -07:00
conf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
console.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cpupart.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cpuvar.h Refresh links to web site 2013-03-04 19:09:34 -08:00
crc32.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cred.h Remove credential configure checks. 2014-10-17 15:11:51 -07:00
ctype.h Refresh links to web site 2013-03-04 19:09:34 -08:00
ddi.h Refresh links to web site 2013-03-04 19:09:34 -08:00
debug.h Add IMPLY() and EQUIV() macros 2015-06-24 14:44:47 -07:00
dirent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
disp.h Add kpreempt() compatibility macro 2013-10-09 13:52:55 -07:00
dkio.h Additional dkio support for TRIM/Discard 2015-12-02 13:44:35 -08:00
dkioc_free_util.h Additional dkio support for TRIM/Discard 2015-12-02 13:44:35 -08:00
dklabel.h Refresh links to web site 2013-03-04 19:09:34 -08:00
dnlc.h Remove shrink_{i,d}node_cache() wrappers 2014-10-17 15:11:51 -07:00
dumphdr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
efi_partition.h Refresh links to web site 2013-03-04 19:09:34 -08:00
errno.h Refresh links to web site 2013-03-04 19:09:34 -08:00
extdirent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
fcntl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
file.h Refresh links to web site 2013-03-04 19:09:34 -08:00
idmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
int_limits.h Refresh links to web site 2013-03-04 19:09:34 -08:00
int_types.h Refresh links to web site 2013-03-04 19:09:34 -08:00
inttypes.h Refresh links to web site 2013-03-04 19:09:34 -08:00
isa_defs.h Either _ILP32 or _LP64 must be defined 2015-12-10 11:53:29 -08:00
kidmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
kmem_cache.h Fix CPU hotplug 2015-10-13 09:50:40 -07:00
kmem.h Add hooks for disabling direct reclaim 2015-01-16 13:55:09 -08:00
kobj.h Refresh links to web site 2013-03-04 19:09:34 -08:00
kstat.h 3537 add kstat_waitq_enter and friends 2013-10-25 13:41:52 -07:00
list.h Refresh links to web site 2013-03-04 19:09:34 -08:00
Makefile.am Additional dkio support for TRIM/Discard 2015-12-02 13:44:35 -08:00
mkdev.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mntent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
modctl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mode.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mount.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mutex.h Add new lock types MUTEX_NOLOCKDEP, and RW_NOLOCKDEP 2015-12-11 16:18:54 -08:00
note.h Refresh links to web site 2013-03-04 19:09:34 -08:00
open.h Refresh links to web site 2013-03-04 19:09:34 -08:00
param.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pathname.h Refresh links to web site 2013-03-04 19:09:34 -08:00
policy.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pool.h Refresh links to web site 2013-03-04 19:09:34 -08:00
priv_impl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
proc.h Refresh links to web site 2013-03-04 19:09:34 -08:00
processor.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pset.h Refresh links to web site 2013-03-04 19:09:34 -08:00
random.h Refresh links to web site 2013-03-04 19:09:34 -08:00
refstr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
resource.h Refresh links to web site 2013-03-04 19:09:34 -08:00
rwlock.h Add new lock types MUTEX_NOLOCKDEP, and RW_NOLOCKDEP 2015-12-11 16:18:54 -08:00
sdt.h Define SET_ERROR() 2013-10-09 14:20:46 -07:00
sid.h Refresh links to web site 2013-03-04 19:09:34 -08:00
signal.h Refresh links to web site 2013-03-04 19:09:34 -08:00
stat.h Refresh links to web site 2013-03-04 19:09:34 -08:00
stropts.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sunddi.h Update code to use misc_register()/misc_deregister() 2014-10-17 15:07:28 -07:00
sunldi.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysdc.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysevent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysmacros.h sysmacros: Make P2ROUNDUP not trigger int overflow 2015-11-13 15:21:52 -08:00
systeminfo.h Simplify hostid logic 2014-04-14 09:04:41 -07:00
systm.h Refresh links to web site 2013-03-04 19:09:34 -08:00
t_lock.h Refresh links to web site 2013-03-04 19:09:34 -08:00
taskq.h Revert "Make taskq_member() use ->journal_info" 2015-12-08 17:12:36 -08:00
thread.h De-inline spl_kthread_create(). 2014-04-09 19:17:12 -07:00
time.h Fix build issue on some configured kernels 2015-12-11 15:27:53 -08:00
timer.h Add ddi_time_after and friends 2014-04-14 09:32:01 -07:00
tsd.h Refresh links to web site 2013-03-04 19:09:34 -08:00
types32.h Refresh links to web site 2013-03-04 19:09:34 -08:00
types.h Refactor existing code 2015-01-16 13:55:08 -08:00
u8_textprep.h Refresh links to web site 2013-03-04 19:09:34 -08:00
uio.h Restructure uio to accommodate bio_vec 2015-08-24 10:10:21 -07:00
unistd.h Refresh links to web site 2013-03-04 19:09:34 -08:00
user.h Fix race between getf() and areleasef() 2015-12-03 15:44:47 -08:00
va_list.h Refresh links to web site 2013-03-04 19:09:34 -08:00
varargs.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vfs_opreg.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vfs.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vmem.h Add memory compatibility wrappers 2015-06-29 09:26:29 -07:00
vmsystm.h Include other sources of freeable memory in the freemem calculation 2015-08-19 09:25:30 -07:00
vnode.h Implement areleasef() 2015-04-24 13:02:37 -07:00
zmod.h Refresh links to web site 2013-03-04 19:09:34 -08:00
zone.h Add crgetzoneid() stub 2015-04-02 09:49:55 -07:00