What is wrong with dtrace's stack()?
Lev Serebryakov
lev at FreeBSD.org
Sun Oct 21 21:37:34 UTC 2018
Hello Conrad,
Sunday, October 21, 2018, 8:21:43 PM, you wrote:
> Your assembler dump offsets are in decimal. Look for offset 0x33 =
> +51, not +33.
Problem is, sosend() is not very interesting by itself, and looks like
several layers of stack are always lost.
I see a lot of stacks like this:
kernel`lock_delay+0x42
kernel`soo_write+0x33
kernel`dofilewrite+0x79
kernel`sys_write+0xc3
kernel`amd64_syscall+0x332
kernel`0xffffffff8086c87d
But event sosend() doesn't call lock_delay(), so it is impossible to
understand why do lock_delay() seen 41932 times in 60 seconds at top of the
stack. Where are all call stack?! All these functions could not be inlined,
as sosend() is located in other translation unit and it calls function by
pointer, this call could not be inlined too.
--
Best regards,
Lev mailto:lev at FreeBSD.org
More information about the freebsd-hackers
mailing list