From owner-freebsd-hackers@freebsd.org Sun Oct 21 21:37:34 2018 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C219D1037259 for ; Sun, 21 Oct 2018 21:37:34 +0000 (UTC) (envelope-from lev@FreeBSD.org) Received: from onlyone.not-for.work (onlyone.not-for.work [IPv6:2a01:4f8:201:6350::2]) by mx1.freebsd.org (Postfix) with ESMTP id 5C68379BA4 for ; Sun, 21 Oct 2018 21:37:34 +0000 (UTC) (envelope-from lev@FreeBSD.org) Received: from lion.home.serebryakov.spb.ru (unknown [94.19.235.70]) (Authenticated sender: lev@serebryakov.spb.ru) by onlyone.not-for.work (Postfix) with ESMTPSA id 1AD466E8; Mon, 22 Oct 2018 00:37:33 +0300 (MSK) Date: Mon, 22 Oct 2018 00:37:34 +0300 From: Lev Serebryakov Reply-To: lev@FreeBSD.org Organization: FreeBSD Message-ID: <475670271.20181022003734@serebryakov.spb.ru> To: Conrad Meyer CC: "freebsd-hackers@freebsd.org" Subject: Re: What is wrong with dtrace's stack()? In-Reply-To: References: <170994671.20181021201021@serebryakov.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Oct 2018 21:37:34 -0000 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