6851093 system drops to kmdb with anonymous dtrace probes + kmdb
authorJonathan Haslam <Jonathan.Haslam@Sun.COM>
Tue, 30 Jun 2009 07:41:21 +0100
changeset 9998 5f6596ec3328
parent 9997 174d75a29a1c
child 9999 d5e89571de4e
6851093 system drops to kmdb with anonymous dtrace probes + kmdb
usr/src/uts/common/dtrace/dtrace.c
--- a/usr/src/uts/common/dtrace/dtrace.c	Mon Jun 29 22:20:35 2009 -0700
+++ b/usr/src/uts/common/dtrace/dtrace.c	Tue Jun 30 07:41:21 2009 +0100
@@ -14482,7 +14482,7 @@
 	mutex_exit(&cpu_lock);
 
 	if (state == NULL) {
-		if (--dtrace_opens == 0)
+		if (--dtrace_opens == 0 && dtrace_anon.dta_enabling == NULL)
 			(void) kdi_dtrace_set(KDI_DTSET_DTRACE_DEACTIVATE);
 		mutex_exit(&dtrace_lock);
 		return (EAGAIN);
@@ -14518,7 +14518,12 @@
 
 	dtrace_state_destroy(state);
 	ASSERT(dtrace_opens > 0);
-	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);
 
 	mutex_exit(&dtrace_lock);