Two minor problems are noted with fbt when using kernels compiled with gcc: 1. Tables containing legal but meaningless instructions trigger warnings of the form: Apr 6 18:07:27 flask fbt: [ID 783403 kern.notice] NOTICE: strange leaf jmpl/call delay at 7b277b60 Apr 6 18:07:27 flask fbt: [ID 783403 kern.notice] NOTICE: strange leaf jmpl/call delay at 7b277b64 Apr 6 18:07:27 flask fbt: [ID 783403 kern.notice] NOTICE: strange leaf jmpl/call delay at 7b277b68 Apr 6 18:07:27 flask fbt: [ID 783403 kern.notice] NOTICE: strange leaf jmpl/call delay at 7b277b6c The instructions in question look like: geterrno+0x140: call -0x136216d0 <0x67c56490> geterrno+0x144: call -0x136216d0 <0x67c56494> geterrno+0x148: call -0x136216b0 <0x67c564b8> 0x7b277b6c: illtrap 0 0x7b277b70: illtrap 0 Since these aren''t really calls, fbt does the right thing. The messages are harmless but voluminous. The examples I''ve looked at invariably have the table between functions. Determining that these instructions are unreachable, however, seems impractical. Any suggestions? 2. fbt refuses to instrument functions whose first instruction is a branch other than non-annulled ba. However, gcc compiles functions like int foo(void *bar) { if (bar == NULL) return (0); ... } into failover_safe: brz,pn %o0, +0x38 <failover_safe+0x38> failover_safe+4: clr %o5 failover_safe+8: ldx [%o0], %o0 ... which is not incorrect. There are unfortunately quite a few of these functions, though the only negative impact is that they aren''t instrumented and warnings are issued on the console. A grovel through bugster doesn''t show that anyone''s run across this yet. How difficult would it be to instrument these? -- Keith M Wesolowski "Sir, we''re surrounded!" Solaris Kernel Team "Excellent; we can attack in any direction!" _______________________________________________ DTrace mailing list DTrace@opensolaris.org https://www.opensolaris.org/mailman/listinfo/dtrace