tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: DTrace syscall provider - please test/comment



In article <51C8D0F5.9020302%NetBSD.org@localhost>, Jeff Rizzo  
<riz%NetBSD.org@localhost> wrote:
>I've been looking at our DTrace code in my spare time recently, and I'd 
>like to get us closer to the point where generally available D scripts 
>"just work" on NetBSD.  One of the big missing pieces right now (by no 
>means the *only* missing piece) is the "syscall" provider for tracing 
>system calls.
>
>Here's the latest patch, meant to be applied with "patch -p0" in 
>/usr/src (or whereever):
>
>http://www.tastylime.net/netbsd/systrace.diff
>
>To test it, make sure you're set up for dtrace:
>
>http://wiki.netbsd.org/how_to_enable_and_run_dtrace/
>
>You'll need to rebuild both the kernel and all the dtrace kmods with 
>these patches.  Something like this to rebuild the whole system:
>
>./build.sh -U -O /dtracetest/obj -T /dtracetest/tools -m amd64 -j8 -V 
>MKDTRACE=yes release
>
>The kernel config I'm using is:
>
>#
># Kernel with dtrace enabled.
>
>include "arch/amd64/conf/GENERIC"
>
>options         KDTRACE_HOOKS
>options         DDB_ONPANIC=1
>makeoptions     DEBUG="-g"
>
>
>
>Some notes:
>
>- I've only tested this on amd64.  It *should* work on i386 as well.
>
>- Only native syscalls will be traced.  I could use some help figuring 
>out the best way to implement tracing of emulated syscalls (netbsd32, 
>linux, linux32, etc) given the fact that those are meant to be loadable 
>modules
>
>- The name "systrace" was not chosen by me; it's from the original 
>Solaris code.  Yes, it conflicts with the removed "systrace" feature.  
>No, it doesn't have anything to do with that systrace.  I would like to 
>rename all the dtrace providers (fbt, sdt, profile, systrace) to 
>"dtrace_*" names at some point, but not until after these changes are in.
>
>- at some point, I would like to make "MKDTRACE=yes" the default on 
>systems that support DTrace (amd64 and i386 at the moment), without 
>including KDTRACE_HOOKS in the kernel config necessarily.  Thoughts?

Can't this be done as an addition/enhancement to the trace_enter()/
trace_exit() facility instead of having to enter each syscall entry?

christos



Home | Main Index | Thread Index | Old Index