From owner-svn-src-all@freebsd.org Wed Oct 7 07:35:24 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A4989D0C24; Wed, 7 Oct 2015 07:35:24 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward19p.cmail.yandex.net (forward19p.cmail.yandex.net [IPv6:2a02:6b8:0:1465::aa]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Certum Level IV CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 56A5384A; Wed, 7 Oct 2015 07:35:24 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from web12g.yandex.ru (web12g.yandex.ru [95.108.252.112]) by forward19p.cmail.yandex.net (Yandex) with ESMTP id E4D6321D84; Wed, 7 Oct 2015 10:35:07 +0300 (MSK) Received: from 127.0.0.1 (localhost [127.0.0.1]) by web12g.yandex.ru (Yandex) with ESMTP id F096A4262983; Wed, 7 Oct 2015 10:35:06 +0300 (MSK) Received: by web12g.yandex.ru with HTTP; Wed, 07 Oct 2015 10:35:06 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: Rui Paulo , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" In-Reply-To: <1444174917.6210.43.camel@me.com> References: <201510040821.t948LGH7000421@repo.freebsd.org> <1444174917.6210.43.camel@me.com> Subject: Re: svn commit: r288657 - head/sys/netinet6 MIME-Version: 1.0 Message-Id: <91311444203306@web12g.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Wed, 07 Oct 2015 10:35:06 +0300 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=koi8-r X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 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, 07 Oct 2015 07:35:24 -0000 07.10.2015, 02:42, "Rui Paulo" : > On Sun, 2015-10-04 at 08:21 +0000, Alexander V. Chernikov wrote: >> šAuthor: melifaro >> šDate: Sun Oct 4 08:21:15 2015 >> šNew Revision: 288657 >> šURL: https://svnweb.freebsd.org/changeset/base/288657 >> >> šLog: >> šššAdd __noinline attribute to several functions to ease dtrace >> šinstrumentation > > What instrumentation? Is there a DTrace script in userland that uses Well, given that ND state machine is a bit complex, it is nice to have some sort of easy-to-turn-on hooks to monitor its state (I suspect this is true not only for me, but to other people hacking IPv6 code). dtrace and its fbt provider does the great thing of exporting most of needed functions. However, due to inlining, not all calls can be hooked. > these functions? If not, this should not have been committed as you > just made the code slower. This is one of those changes that should be I do understand that in general telling compiler not to inline functions might slow things down. However, all functions except nd6_resolve_slow are not used in data path, so, well, losing fraction of percent is not a big deal for control function. Do you have different view on that? nd6_resolve_slow() is currently called when fast path processing failed and we have to acquire lle write lock and so on. (But yes, right now it could be called on per-packet basis in STALE/PROBE state, (which is going to be changed in D3780)). What could be done better is probably having some kind of __dtrace_inline define under KDTRACE_HOOKS kernel options. Does this look better to you or you have some different approach in mind (like explicitly defining dtrace probes or maybe something different) ? > kept in your own repository. > > -- > Rui Paulo