New DTrace source snapshot
Niki Denev
ndenev at icdsoft.com
Sat Feb 16 12:51:58 UTC 2008
On 2/11/08, John Birrell <jb at what-creek.com> wrote:
> This one fixes problems with the previous one:
>
> - buildkernel would fail because NO_CTF=1 was not set when
> building the lone kernel build tool.
> - A number of things were missing from the dtrace kernel
> module on i386.
> - Missing syscall names in the kernel without witness have
> been resolved so this snapshot should build with and without
> witness, invariants, smp etc.
>
> <http://people.freebsd.org/~jb/dtrace/dtrace-20080211.tar.bz>
>
> Known problems:
> - This is a snapshot of current which contains lock order
> reversal warnings. These are not related to the DTrace-specific
> code.
> - ustack() as reported by Drew hasn't been ported yet, so don't
> expect it to do anything.
> - On i386 mp_maxid in the kernel doesn't behave the same way that
> it does on amd64. Work-around code exists for this, but it is
> less than optimal.
> - A few of the tests that pass on amd64 don't work on i386. The
> causes are under investigation. The worst one is the tailcall
> test which causes the machine to reboot. Ugh.
>
> Note:
> - This snapshot should build cleanly on either a CURRENT or a
> RELENG_7 system. If not, please tell me. RELENG_6 users should
> upgrade to RELENG_7 first or contact me. The tool bootstrap
> will fail to build when hosted on RELENG_6.
> - It should be ABI compatible with CURRENT and RELENG_7. If
> not, please tell me.
> - This snapshot extends the basic OpenSolaris DTrace functionality
> to support:
>
> printm(const size_t bufrsize, uintptr_t *memref);
>
> where:
>
> 'memref' is an an array of 2 uintptr_t entries -- address and
> size.
>
> Usage example:
>
> printm(500, memref(mypointer, mysize));
>
> reserves buffer space of 500 bytes to trace memory at address
> 'mypointer' with size 'mysize'. Both 'mypointer' and 'mysize'
> can be variables in the D script.
>
> By contrast, OpenSolaris only supports tracemem(ptr, const size)
> where 'size' is fixed at compile time. This is not terribly
> useful when tracing protocols or variable read sizes where the
> data indicates how long the memory object is.
>
> Target audience:
>
> I'd like to get more people involved with running this code.
> If you just like to follow FreeBSD current and don't even try
> to contribute stuff back... this snapshot is something you
> could try. I need some feeback from people who just use
> FreeBSD-CURRENT.
>
> --
> John Birrell
Dtrace on FreeBSD is really amazing! Thanks!
I have one question though, is the anonymous tracing during boot
supported on fbsd?
I have created the required /boot/dtrace.dof file, and set
dtrace_boot="YES" in loader.conf,
but after reboot dtrace -ae doesn not produce anything
--Niki
More information about the freebsd-current
mailing list