From owner-svn-src-all@FreeBSD.ORG Wed Apr 18 04:29:49 2012 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 63CDD106566B; Wed, 18 Apr 2012 04:29:49 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail01.syd.optusnet.com.au (mail01.syd.optusnet.com.au [211.29.132.182]) by mx1.freebsd.org (Postfix) with ESMTP id D7AA48FC0A; Wed, 18 Apr 2012 04:29:48 +0000 (UTC) Received: from c211-30-171-136.carlnfd1.nsw.optusnet.com.au (c211-30-171-136.carlnfd1.nsw.optusnet.com.au [211.30.171.136]) by mail01.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id q3I4TevX006328 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 18 Apr 2012 14:29:41 +1000 Date: Wed, 18 Apr 2012 14:29:40 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Kirk McKusick In-Reply-To: <201204172146.q3HLkxS6000736@svn.freebsd.org> Message-ID: <20120418135636.C1082@besplex.bde.org> References: <201204172146.q3HLkxS6000736@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r234400 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Apr 2012 04:29:49 -0000 On Tue, 17 Apr 2012, Kirk McKusick wrote: > Log: > Drop export of vdestroy() function from kern/vfs_subr.c as it is > used only as a helper function in that file. Replace sole call to > vbusy() with inline code in vholdl(). Replace sole calls to vfree() > and vdestroy() with inline code in vdropl(). > > The Clang compiler already inlines these functions, so they do not > show up in a kernel backtrace which is confusing. Also you cannot > set their frame in kgdb which means that it is impossible to view > their local variables. So, while the produced code is unchanged, > the debugging should be easier. gcc-4.2.1 has the same bug, but you can avoid it using -fno-inline-functions-called-once (not the default). Unfortunately, this flag is not even a no-op with clang (it generates an error message). Inlining of functions called once also breaks profiling. The breakage for debugging is especially large for primitive debuggers like ddb. Without line numbers, it is difficult to even find the code for small functions when they are inlined into big functions. With full symbol table info, it should be possible to display inlined functions as if they weren't inlined, especially if they aren't declared inline, but I've never seen a debugger than can even step over them properly using 'n'. Bruce