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/netinet | |
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/netinet')
-rw-r--r-- | sys/netinet/in_kdtrace.c | 2 | ||||
-rw-r--r-- | sys/netinet/ip_fastfwd.c | 1 | ||||
-rw-r--r-- | sys/netinet/ip_input.c | 1 | ||||
-rw-r--r-- | sys/netinet/ip_output.c | 1 | ||||
-rw-r--r-- | sys/netinet/sctp_dtrace_declare.h | 1 | ||||
-rw-r--r-- | sys/netinet/sctp_dtrace_define.h | 1 | ||||
-rw-r--r-- | sys/netinet/tcp_input.c | 1 | ||||
-rw-r--r-- | sys/netinet/tcp_output.c | 1 | ||||
-rw-r--r-- | sys/netinet/tcp_subr.c | 1 | ||||
-rw-r--r-- | sys/netinet/udp_usrreq.c | 1 |
10 files changed, 0 insertions, 11 deletions
diff --git a/sys/netinet/in_kdtrace.c b/sys/netinet/in_kdtrace.c index fc39e43..c17c9f3 100644 --- a/sys/netinet/in_kdtrace.c +++ b/sys/netinet/in_kdtrace.c @@ -29,8 +29,6 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include "opt_kdtrace.h" - #include <sys/param.h> #include <sys/systm.h> #include <sys/sdt.h> diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c index 7d81475..3f92cd7 100644 --- a/sys/netinet/ip_fastfwd.c +++ b/sys/netinet/ip_fastfwd.c @@ -78,7 +78,6 @@ __FBSDID("$FreeBSD$"); #include "opt_ipfw.h" #include "opt_ipstealth.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/systm.h> diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 4fe52d5..01ec617 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$"); #include "opt_ipfw.h" #include "opt_ipstealth.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include "opt_route.h" #include <sys/param.h> diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 1ee18aa..6d746ac 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -34,7 +34,6 @@ __FBSDID("$FreeBSD$"); #include "opt_ipfw.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include "opt_mbuf_stress_test.h" #include "opt_mpath.h" #include "opt_route.h" diff --git a/sys/netinet/sctp_dtrace_declare.h b/sys/netinet/sctp_dtrace_declare.h index 930a547..c5c8f9c 100644 --- a/sys/netinet/sctp_dtrace_declare.h +++ b/sys/netinet/sctp_dtrace_declare.h @@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$"); #ifndef _NETINET_SCTP_DTRACE_DECLARE_H_ #define _NETINET_SCTP_DTRACE_DECLARE_H_ -#include "opt_kdtrace.h" #include <sys/kernel.h> #include <sys/sdt.h> diff --git a/sys/netinet/sctp_dtrace_define.h b/sys/netinet/sctp_dtrace_define.h index c460c0b..f4f075e 100644 --- a/sys/netinet/sctp_dtrace_define.h +++ b/sys/netinet/sctp_dtrace_define.h @@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$"); #ifndef _NETINET_SCTP_DTRACE_DEFINE_H_ #define _NETINET_SCTP_DTRACE_DEFINE_H_ -#include "opt_kdtrace.h" #include <sys/kernel.h> #include <sys/sdt.h> diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 0f785f9..ce9d74a 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include "opt_tcpdebug.h" #include <sys/param.h> diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index 00d5415..2fc4e86 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include "opt_tcpdebug.h" #include <sys/param.h> diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 170482a..1030630 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include "opt_tcpdebug.h" #include <sys/param.h> diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index fe115c3..47f1515 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" -#include "opt_kdtrace.h" #include <sys/param.h> #include <sys/domain.h> |