sdt panic

Andriy Gapon avg at FreeBSD.org
Fri Apr 19 15:39:20 UTC 2013


#0  doadump (textdump=1) at pcpu.h:233
#1  0xffffffff80591d69 in kern_reboot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:444
#2  0xffffffff8059210c in panic (fmt=<value optimized out>) at
/usr/src/sys/kern/kern_shutdown.c:620
#3  0xffffffff80775fee in trap_fatal (frame=0xc, eva=18446744071571306953) at
/usr/src/sys/amd64/amd64/trap.c:872
#4  0xffffffff80776112 in trap_pfault (frame=0xffffff8236165030, usermode=0) at
/usr/src/sys/amd64/amd64/trap.c:730
#5  0xffffffff807768ee in trap (frame=0xffffff8236165030) at
/usr/src/sys/amd64/amd64/trap.c:463
#6  0xffffffff807601e3 in calltrap () at /usr/src/sys/amd64/amd64/exception.S:228
#7  0xffffffff81162c96 in dtrace_probe_lookup (prid=0, mod=0xffffff82361651e0 "",
func=0xffffff82361651a0 "stat", name=0xffffff8236165160 "reg")
    at
/usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:7876
#8  0xffffffff810c2164 in sdt_probe_callback (probe=0xffffffff80b5e760, arg=<value
optimized out>) at /usr/src/sys/modules/dtrace/sdt/../../../cddl/dev/sdt/sdt.c:133
#9  0xffffffff8058f9ec in sdt_probe_listall (prov=<value optimized out>,
callback_func=0xffffffff810c20e5 <sdt_probe_callback>, arg=0x0) at
/usr/src/sys/kern/kern_sdt.c:269
#10 0xffffffff810c224b in sdt_provider_entry (prov=<value optimized out>,
arg=<value optimized out>) at
/usr/src/sys/modules/dtrace/sdt/../../../cddl/dev/sdt/sdt.c:145
#11 0xffffffff8058f26f in sdt_provider_listall_locked
(callback_func=0xffffffff810c2236 <sdt_provider_entry>, arg=0x0) at
/usr/src/sys/kern/kern_sdt.c:246
#12 0xffffffff8058facb in sdt_provider_listall (callback_func=0xffffffff810c2236
<sdt_provider_entry>, arg=0x0) at /usr/src/sys/kern/kern_sdt.c:230
#13 0xffffffff810c2234 in sdt_provide_probes (arg=0x0, desc=0xffffff82361651e0) at
/usr/src/sys/modules/dtrace/sdt/../../../cddl/dev/sdt/sdt.c:154
#14 0xffffffff8116249c in dtrace_probe_provide (desc=0x0, prv=0xfffffe0112520800)
at
/usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:7984
#15 0xffffffff81162825 in dtrace_enabling_provide (prv=0xfffffe0112520800) at
/usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:11607
#16 0xffffffff81167d1d in dtrace_register (name=0xffffffff808a3bc7 "proc",
pap=0xffffffff810c2398, priv=2, cr=0x0, pops=0xffffffff810c23c0, arg=0x0,
idp=0xffffffff80b48c28)
    at
/usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:7486
#17 0xffffffff810c21f4 in sdt_provider_reg_callback (prov=<value optimized out>,
arg=<value optimized out>) at
/usr/src/sys/modules/dtrace/sdt/../../../cddl/dev/sdt/sdt.c:182
#18 0xffffffff8058f26f in sdt_provider_listall_locked
(callback_func=0xffffffff810c21be <sdt_provider_reg_callback>, arg=0x0) at
/usr/src/sys/kern/kern_sdt.c:246
#19 0xffffffff8058f7da in sdt_register_callbacks (register_prov=0xffffffff810c21be
<sdt_provider_reg_callback>, reg_prov_arg=0x0, deregister_prov=0xffffffff810c21af
<sdt_provider_unreg_callback>,
    dereg_prov_arg=0x0, register_probe=0xffffffff810c20e5 <sdt_probe_callback>,
reg_probe_arg=0x0) at /usr/src/sys/kern/kern_sdt.c:320
#20 0xffffffff810c20a8 in sdt_load (dummy=<value optimized out>) at
/usr/src/sys/modules/dtrace/sdt/../../../cddl/dev/sdt/sdt.c:195
#21 0xffffffff80573e23 in linker_load_module (kldname=<value optimized out>,
modname=0xfffffe000a156800 "sdt", parent=0x0, verinfo=0x0,
lfpp=0xffffff8236165928) at /usr/src/sys/kern/kern_linker.c:241
#22 0xffffffff8057436f in kern_kldload (td=0xfffffe012812b940, file=0x0,
fileid=0xffffff8236165974) at /usr/src/sys/kern/kern_linker.c:1041
#23 0xffffffff80574533 in sys_kldload (td=0xfffffe012812b940, uap=<value optimized
out>) at /usr/src/sys/kern/kern_linker.c:1075
#24 0xffffffff807754e4 in amd64_syscall (td=0xfffffe012812b940, traced=0) at
subr_syscall.c:135
#25 0xffffffff807604c7 in Xfast_syscall () at /usr/src/sys/amd64/amd64/exception.S:387

My understanding is that this happens if sdt.ko is loaded later than some other
dtrace module(s)/providers and there are any (non-sdt) probes active at the time
of loading.
It seems to be caused by sdt_provider_entry() being called on a sdt-based provider
that has not been assigned an id (yet).

-- 
Andriy Gapon


More information about the freebsd-hackers mailing list