Patrick Geisler
2009-Feb-23 23:35 UTC
[dtrace-discuss] unbalanced fbt output when tracing uiomove/xcopyin/copyin_more
I''m flow tracing and computing some inclusive/exclusive elapsed function times and I''ve come across a problem. Here''s an excerpt of the problematic output: -> uiomove ... <- copyin_more <- uiomove There is no fbt:::entry output for copyin_more but there is output for fbt:::return. After perusing the source/assembler, I''ve discovered the following: - uiomove calls xcopyin which has no entry/return probes - xcopyin calls copyin_more+0xc (labeled as .do_copyin in asm): xcopyin+0xe0: ba,pt %xcc, SUNW,UltraSPARC-IIIi:copyin_more+0xc - copyin_more does have entry/return probes, but the entry probe doesn''t fire, presumably because we''re not entering the function at +0x0 This leads to "unbalanced" output and is seriously screwing with the stack-depth logic in my code. I might be able to hack around this, but I''d prefer something elegant. Any ideas? -- This message posted from opensolaris.org
Patrick Geisler
2009-Feb-23 23:37 UTC
[dtrace-discuss] unbalanced fbt output when tracing uiomove/xcopyin/copyin_more
OK, that got cut off for some reason ... here''s the rest of the post: There is no fbt:::entry output for copyin_more but there is output for fbt:::return. After perusing the source/assembler, I''ve discovered the following: - uiomove calls xcopyin which has no entry/return probes - xcopyin calls copyin_more+0xc (labeled as .do_copyin in asm): xcopyin+0xe0: ba,pt %xcc, SUNW,UltraSPARC-IIIi:copyin_more+0xc - copyin_more does have entry/return probes, but the entry probe doesn''t fire, presumably because we''re not entering the function at +0x0 This leads to "unbalanced" output and is seriously screwing with the stack-depth logic in my code. I might be able to hack around this, but I''d prefer something elegant. Any ideas? -- This message posted from opensolaris.org