PERFORCE change 100032 for review

John Birrell jb at FreeBSD.org
Mon Jun 26 06:29:43 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=100032

Change 100032 by jb at jb_freebsd2 on 2006/06/26 06:05:41

	Change the dtrace_load function to run off a system initialisation
	level so that it is ready for service as early in the boot as
	possible.

Affected files ...

.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#14 edit

Differences ...

==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#14 (text+ko) ====

@@ -22,18 +22,10 @@
  *
  */
 
-/*
- * This function implements similar code to the Solaris dtrace_attach()
- * function.
- */
-
-static int
-dtrace_load()
+static void
+dtrace_load(void *dummy)
 {
 	dtrace_provider_id_t id;
-	dtrace_state_t *state = NULL;
-	dtrace_enabling_t *enab;
-	int error = 0;
 
 	/* Hang our hook for DTrace traps during probes. */
 	dtrace_instr_size_func = dtrace_instr_size;
@@ -166,9 +158,6 @@
 	dtrace_probeid_error = dtrace_probe_create((dtrace_provider_id_t)
 	    dtrace_provider, NULL, NULL, "ERROR", 1, NULL);
 
-dtrace_err_verbose = 1;
-
-	dtrace_anon_property();
 	mutex_exit(&cpu_lock);
 
 	/*
@@ -182,48 +171,8 @@
 		dtrace_helptrace_next = 0;
 	}
 
-	/*
-	 * If there are already providers, we must ask them to provide their
-	 * probes, and then match any anonymous enabling against them.  Note
-	 * that there should be no other retained enablings at this time:
-	 * the only retained enablings at this time should be the anonymous
-	 * enabling.
-	 */
-	if (dtrace_anon.dta_enabling != NULL) {
-		ASSERT(dtrace_retained == dtrace_anon.dta_enabling);
-
-		dtrace_enabling_provide(NULL);
-		state = dtrace_anon.dta_state;
-
-		/*
-		 * We couldn't hold cpu_lock across the above call to
-		 * dtrace_enabling_provide(), but we must hold it to actually
-		 * enable the probes.  We have to drop all of our locks, pick
-		 * up cpu_lock, and regain our locks before matching the
-		 * retained anonymous enabling.
-		 */
-		mutex_exit(&dtrace_lock);
-		mutex_exit(&dtrace_provider_lock);
-
-		mutex_enter(&cpu_lock);
-		mutex_enter(&dtrace_provider_lock);
-		mutex_enter(&dtrace_lock);
-
-		if ((enab = dtrace_anon.dta_enabling) != NULL)
-			(void) dtrace_enabling_match(enab, NULL);
-
-		mutex_exit(&cpu_lock);
-	}
-
 	mutex_exit(&dtrace_lock);
 	mutex_exit(&dtrace_provider_lock);
 
-	if (state != NULL) {
-		/*
-		 * If we created any anonymous state, set it going now.
-		 */
-		(void) dtrace_state_go(state, &dtrace_anon.dta_beganon);
-	}
-
-	return (error);
+	return;
 }


More information about the p4-projects mailing list