Date: Mon, 22 Oct 2018 00:37:34 +0300 From: Lev Serebryakov <lev@FreeBSD.org> To: Conrad Meyer <cse.cem@gmail.com> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Re: What is wrong with dtrace's stack()? Message-ID: <475670271.20181022003734@serebryakov.spb.ru> In-Reply-To: <CAG6CVpVCe-8OVU%2BKEyAh8swFSAjRshNcNLN0tjAS3W8bZxyrTA@mail.gmail.com> References: <170994671.20181021201021@serebryakov.spb.ru> <CAG6CVpVCe-8OVU%2BKEyAh8swFSAjRshNcNLN0tjAS3W8bZxyrTA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?475670271.20181022003734>