Hi John Birrell, I am exploring DTrace on "7.1-STABLE FreeBSD amd64" and I found several weird behaviors:
1) Not all kernel functions show up in fbt provider. Take isp(4) as example: "dtrace -l" shows static void isp_freeze_loopdown(ispsoftc_t *, int, char *); ___but not___ static void isp_handle_platform_atio2(ispsoftc_t *, at2_entry_t *); Both are static functions. But one shows up in fbt, another not. What's the rational behind it ? Any way to fix it ? 2) The symptom described below only shows in 64-bit platform (amd64). Here is the D Code: fbt::isp_handle_platform_atio2:entry { self->cdb =args[1]->at_cmnd.cdb_dl.sf.fcp_cmnd_cdb[0]; printf("%s(%x, %x, cdb_cmd %x)\n", probefunc, arg0, arg1, self->cdb); } It will never fire. I have to add another 2 probes on top of it, then it (fbt::isp_handle_platform_atio2:entry) will trace. Even the 2 probes on top of it never fire. --------------- dtrace:::BEGIN { tr = 0; } fbt:::entry /tr == 1/ { @a[probefunc] = count(); } fbt::isp_handle_platform_atio2:entry { self->cdb =args[1]->at_cmnd.cdb_dl.sf.fcp_cmnd_cdb[0]; printf("%s(%x, %x, cdb_cmd %x)\n", probefunc, arg0, arg1, self->cdb); } Thanks, K. Zhu _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"