svn commit: r268231 - head/sys/cddl/contrib/opensolaris/uts/common/dtrace

Pedro F. Giffuni pfg at FreeBSD.org
Thu Jul 3 19:25:24 UTC 2014


Author: pfg
Date: Thu Jul  3 19:25:24 2014
New Revision: 268231
URL: http://svnweb.freebsd.org/changeset/base/268231

Log:
  Merge from OpenSolaris (30-Jun-2009):
  
  6851093 system drops to kmdb with anonymous dtrace probes + kmdb
  
  This has no effect on FreeBSD (code is ifdef'ed) but is useful as
  reference for future merges.
  
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c	Thu Jul  3 19:07:37 2014	(r268230)
+++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c	Thu Jul  3 19:25:24 2014	(r268231)
@@ -16750,7 +16750,7 @@ dtrace_open(struct cdev *dev, int oflags
 
 	if (state == NULL) {
 #if defined(sun)
-		if (--dtrace_opens == 0)
+		if (--dtrace_opens == 0 && dtrace_anon.dta_enabling == NULL)
 			(void) kdi_dtrace_set(KDI_DTSET_DTRACE_DEACTIVATE);
 #else
 		--dtrace_opens;
@@ -16806,7 +16806,11 @@ dtrace_dtr(void *data)
 
 	ASSERT(dtrace_opens > 0);
 #if defined(sun)
-	if (--dtrace_opens == 0)
+	/*
+	 * Only relinquish control of the kernel debugger interface when there
+	 * are no consumers and no anonymous enablings.
+	 */
+	if (--dtrace_opens == 0 && dtrace_anon.dta_enabling == NULL)
 		(void) kdi_dtrace_set(KDI_DTSET_DTRACE_DEACTIVATE);
 #else
 	--dtrace_opens;


More information about the svn-src-head mailing list