PERFORCE change 100035 for review
John Birrell
jb at FreeBSD.org
Mon Jun 26 06:18:23 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=100035
Change 100035 by jb at jb_freebsd2 on 2006/06/26 06:17:54
Add system initialisation callbacks from the dtrace module and
the anonymous enablings. The provider initialisation takes place
between the two.
This change moves the DTrace initialistion a lot earlier in the
kernel boot process, thereby allowing tracing of all the device
probing etc. On my development box the early part of the dmesg
looks like this when booting with DTrace modules loaded:
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.0-CURRENT #68: Mon Jun 26 09:29:31 EST 2006
jbr at freebsd7.cimlogic.com.au:/u2/freebsd/obj/freebsd2/u2/p4/dtrace/src/sys/DTRACE
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2400.10-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf27 Stepping = 7
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x400<CNTX-ID>
real memory = 503300096 (479 MB)
avail memory = 482922496 (460 MB)
ACPI APIC Table: <ASUS P4S533MX>
DTrace registered provider 'dtrace'
DTrace registered provider 'sdt'
DTrace registered provider 'fbt'
DTrace registered provider 'profile'
DTrace registered provider 'syscall'
DTrace enabling probe (:::BEGIN)
DTrace enabling probe (:::ERROR)
ioapic0 <Version 8.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <ASUS P4S533MX> on motherboard
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xe408-0xe40b on acpi0
Affected files ...
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace.c#30 edit
Differences ...
==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace.c#30 (text+ko) ====
@@ -86,7 +86,7 @@
static d_close_t dtrace_close;
static d_ioctl_t dtrace_ioctl;
static d_open_t dtrace_open;
-static int dtrace_load(void);
+static void dtrace_load(void *);
static int dtrace_unload(void);
static void dtrace_clone(void *, struct ucred *, char *, int , struct cdev **);
@@ -512,6 +512,7 @@
static void dtrace_action_stop(void);
static void dtrace_action_ustack(dtrace_mstate_t *, dtrace_state_t *, uint64_t *, uint64_t);
static void dtrace_aggregate(dtrace_aggregation_t *, dtrace_buffer_t *, intptr_t, dtrace_buffer_t *, uint64_t, uint64_t);
+static void dtrace_anon_init(void *);
static void dtrace_anon_property(void);
static void dtrace_bcopy(const void *, void *, size_t);
static void dtrace_buffer_drop(dtrace_buffer_t *);
@@ -665,6 +666,9 @@
#include <cddl/dev/dtrace/i386/dtrace_isa.c>
#endif
+SYSINIT(dtrace_load, SI_SUB_DTRACE, SI_ORDER_FIRST, dtrace_load, NULL)
+SYSINIT(dtrace_anon_init, SI_SUB_DTRACE_ANON, SI_ORDER_FIRST, dtrace_anon_init, NULL)
+
DEV_MODULE(dtrace, dtrace_modevent, NULL);
MODULE_VERSION(dtrace, 1);
MODULE_DEPEND(dtrace, cyclic, 1, 1, 1);
More information about the p4-projects
mailing list