diff options
author | attilio <attilio@FreeBSD.org> | 2013-11-25 07:38:45 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2013-11-25 07:38:45 +0000 |
commit | 7ee4e910ced4b311b0194fe11c664f0c6bde3bd8 (patch) | |
tree | e29b308276ced8b2028470c376a2a34193dc6c3c /sys/compat | |
parent | 150d294dbc6b55504998d6f99781473171415f7f (diff) | |
download | FreeBSD-src-7ee4e910ced4b311b0194fe11c664f0c6bde3bd8.zip FreeBSD-src-7ee4e910ced4b311b0194fe11c664f0c6bde3bd8.tar.gz |
- For kernel compiled only with KDTRACE_HOOKS and not any lock debugging
option, unbreak the lock tracing release semantic by embedding
calls to LOCKSTAT_PROFILE_RELEASE_LOCK() direclty in the inlined
version of the releasing functions for mutex, rwlock and sxlock.
Failing to do so skips the lockstat_probe_func invokation for
unlocking.
- As part of the LOCKSTAT support is inlined in mutex operation, for
kernel compiled without lock debugging options, potentially every
consumer must be compiled including opt_kdtrace.h.
Fix this by moving KDTRACE_HOOKS into opt_global.h and remove the
dependency by opt_kdtrace.h for all files, as now only KDTRACE_FRAMES
is linked there and it is only used as a compile-time stub [0].
[0] immediately shows some new bug as DTRACE-derived support for debug
in sfxge is broken and it was never really tested. As it was not
including correctly opt_kdtrace.h before it was never enabled so it
was kept broken for a while. Fix this by using a protection stub,
leaving sfxge driver authors the responsibility for fixing it
appropriately [1].
Sponsored by: EMC / Isilon storage division
Discussed with: rstone
[0] Reported by: rstone
[1] Discussed with: philip
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/linux/linux_emul.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_fork.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_futex.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_mib.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_misc.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_sysctl.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_time.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_uid16.c | 1 | ||||
-rw-r--r-- | sys/compat/linux/linux_util.c | 1 |
9 files changed, 0 insertions, 9 deletions
diff --git a/sys/compat/linux/linux_emul.c b/sys/compat/linux/linux_emul.c index 61156ba..ec19cd9 100644 --- a/sys/compat/linux/linux_emul.c +++ b/sys/compat/linux/linux_emul.c @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/systm.h> diff --git a/sys/compat/linux/linux_fork.c b/sys/compat/linux/linux_fork.c index 2103636..316cf2a 100644 --- a/sys/compat/linux/linux_fork.c +++ b/sys/compat/linux/linux_fork.c @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/systm.h> diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index 9b4c92f..82a2ef3 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -38,7 +38,6 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $") #endif #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/systm.h> diff --git a/sys/compat/linux/linux_mib.c b/sys/compat/linux/linux_mib.c index 323a38f..3b75307 100644 --- a/sys/compat/linux/linux_mib.c +++ b/sys/compat/linux/linux_mib.c @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/kernel.h> diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index ac2384c..01073f4 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -31,7 +31,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/blist.h> diff --git a/sys/compat/linux/linux_sysctl.c b/sys/compat/linux/linux_sysctl.c index decd8f8..7d263df 100644 --- a/sys/compat/linux/linux_sysctl.c +++ b/sys/compat/linux/linux_sysctl.c @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/kernel.h> diff --git a/sys/compat/linux/linux_time.c b/sys/compat/linux/linux_time.c index e03af00..be6e169 100644 --- a/sys/compat/linux/linux_time.c +++ b/sys/compat/linux/linux_time.c @@ -36,7 +36,6 @@ __KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.14 2006/05/14 03:40:54 christos Exp #endif #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/kernel.h> diff --git a/sys/compat/linux/linux_uid16.c b/sys/compat/linux/linux_uid16.c index a2c3214..c5bf2dd 100644 --- a/sys/compat/linux/linux_uid16.c +++ b/sys/compat/linux/linux_uid16.c @@ -28,7 +28,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/fcntl.h> #include <sys/param.h> diff --git a/sys/compat/linux/linux_util.c b/sys/compat/linux/linux_util.c index 76c210c..be52459 100644 --- a/sys/compat/linux/linux_util.c +++ b/sys/compat/linux/linux_util.c @@ -33,7 +33,6 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/bus.h> |