diff options
author | jb <jb@FreeBSD.org> | 2006-11-04 04:58:10 +0000 |
---|---|---|
committer | jb <jb@FreeBSD.org> | 2006-11-04 04:58:10 +0000 |
commit | f7bc0a87d69099d20f880d19b003e86e9914a561 (patch) | |
tree | 35c5c6a7594197845c0bce149a36748fb383ad1b /sys | |
parent | d871054da8ff096494cd388f1cc6f0545ff18d19 (diff) | |
download | FreeBSD-src-f7bc0a87d69099d20f880d19b003e86e9914a561.zip FreeBSD-src-f7bc0a87d69099d20f880d19b003e86e9914a561.tar.gz |
Build in kernel support for loading DTrace modules by default. This
adds the hooks that DTrace modules register with, and adds a few functions
which have the dtrace_ prefix to allow the DTrace FBT (function boundary
trace) provider to avoid tracing because they are called from the DTtrace
probe context.
Unlike other forms of tracing and debug, DTrace support in the kernel
incurs negligible run-time cost.
I think the only reason why anyone wouldn't want to have kernel support
enabled for DTrace would be due to the license (CDDL) under which DTrace
is released.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/i386/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/ia64/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/pc98/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/powerpc/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/sparc64/conf/DEFAULTS | 3 | ||||
-rw-r--r-- | sys/sparc64/sparc64/machdep.c | 12 | ||||
-rw-r--r-- | sys/sun4v/conf/DEFAULTS | 3 |
8 files changed, 27 insertions, 6 deletions
diff --git a/sys/amd64/conf/DEFAULTS b/sys/amd64/conf/DEFAULTS index 4cf775f..64498c7 100644 --- a/sys/amd64/conf/DEFAULTS +++ b/sys/amd64/conf/DEFAULTS @@ -17,3 +17,6 @@ device uart_ns8250 # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/i386/conf/DEFAULTS b/sys/i386/conf/DEFAULTS index 50a30ee..17174b4 100644 --- a/sys/i386/conf/DEFAULTS +++ b/sys/i386/conf/DEFAULTS @@ -21,3 +21,6 @@ device uart_ns8250 # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/ia64/conf/DEFAULTS b/sys/ia64/conf/DEFAULTS index c36a967..a66c596 100644 --- a/sys/ia64/conf/DEFAULTS +++ b/sys/ia64/conf/DEFAULTS @@ -20,3 +20,6 @@ options GEOM_MBR # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/pc98/conf/DEFAULTS b/sys/pc98/conf/DEFAULTS index 7fd3dba..6b480b7 100644 --- a/sys/pc98/conf/DEFAULTS +++ b/sys/pc98/conf/DEFAULTS @@ -23,3 +23,6 @@ device uart_ns8250 # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/powerpc/conf/DEFAULTS b/sys/powerpc/conf/DEFAULTS index c25145a..833b14d 100644 --- a/sys/powerpc/conf/DEFAULTS +++ b/sys/powerpc/conf/DEFAULTS @@ -14,3 +14,6 @@ device uart_z8530 # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/sparc64/conf/DEFAULTS b/sys/sparc64/conf/DEFAULTS index 8545b37..f1cfbd7 100644 --- a/sys/sparc64/conf/DEFAULTS +++ b/sys/sparc64/conf/DEFAULTS @@ -15,3 +15,6 @@ device uart_z8530 # KSE support went from being default to a kernel option options KSE + +# Kernel support for loading DTrace modules +options KDTRACE diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c index 84eea0b..ab9d74e 100644 --- a/sys/sparc64/sparc64/machdep.c +++ b/sys/sparc64/sparc64/machdep.c @@ -330,6 +330,12 @@ sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec) tick_init(clock); /* + * Initialize global registers. + */ + pc = (struct pcpu *)(pcpu0 + (PCPU_PAGES * PAGE_SIZE)) - 1; + cpu_setregs(pc); + + /* * Initialize the console before printing anything. */ cninit(); @@ -409,7 +415,6 @@ sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec) * stack, so don't pass the real size (PAGE_SIZE) to pcpu_init or * it'll zero it out from under us. */ - pc = (struct pcpu *)(pcpu0 + (PCPU_PAGES * PAGE_SIZE)) - 1; pcpu_init(pc, 0, sizeof(struct pcpu)); pc->pc_curthread = &thread0; pc->pc_curpcb = thread0.td_pcb; @@ -421,11 +426,6 @@ sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec) pc->pc_tlb_ctx_max = TLB_CTX_USER_MAX; /* - * Initialize global registers. - */ - cpu_setregs(pc); - - /* * Initialize the message buffer (after setting trap table). */ msgbufinit(msgbufp, MSGBUF_SIZE); diff --git a/sys/sun4v/conf/DEFAULTS b/sys/sun4v/conf/DEFAULTS index a4bea1a..4efe701 100644 --- a/sys/sun4v/conf/DEFAULTS +++ b/sys/sun4v/conf/DEFAULTS @@ -7,3 +7,6 @@ machine sun4v # Pseudo devices. device mem # Memory and kernel memory devices + +# Kernel support for loading DTrace modules +options KDTRACE |