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