Skip site navigation (1)Skip section navigation (2)
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>