svn commit: r260091 - in head/sys/cddl: contrib/opensolaris/uts/common/dtrace contrib/opensolaris/uts/common/sys dev/dtrace

Mark Johnston markj at freebsd.org
Tue Dec 31 04:00:31 UTC 2013


On Mon, Dec 30, 2013 at 10:49:23PM -0500, Pedro Giffuni wrote:
> 
> Il giorno 30/dic/2013, alle ore 22:28, Mark Johnston <markj at freebsd.org> ha scritto:
> 
> > On Mon, Dec 30, 2013 at 10:21:58PM -0500, Pedro Giffuni wrote:
> >> 
> >> Il giorno 30/dic/2013, alle ore 21:40, Mark Johnston <markj at freebsd.org> ha scritto:
> >> 
> >>> On Tue, Dec 31, 2013 at 12:42:10AM +0400, Gleb Smirnoff wrote:
> >>>> On Mon, Dec 30, 2013 at 05:37:32PM +0000, Mark Johnston wrote:
> >>>> M> Author: markj
> >>>> M> Date: Mon Dec 30 17:37:32 2013
> >>>> M> New Revision: 260091
> >>>> M> URL: http://svnweb.freebsd.org/changeset/base/260091
> >>>> M> 
> >>>> M> Log:
> >>>> M>   Now that vmem(9) is available, use vmem arenas to allocate probe and
> >>>> M>   aggregation IDs, as is done in the upstream illumos code. This still
> >>>> M>   requires some FreeBSD-specific code, as our vmem API is not identical to the
> >>>> M>   one in illumos.
> >>>> M>   
> >>>> M>   Submitted by:	Mike Ma <mikemandarine at gmail.com>
> >>>> 
> >>>> IMHO, alloc_unr() was lighter and thus better for allocating just IDs.
> >>> 
> >>> That's true; I committed the change since it helps keep our code similar
> >>> to upstream and, as Pedro notes, it was a long-standing todo item on the
> >>> wiki. After doing some testing, it looks like vmem is a bit slower:
> >>> process startup is on the order of tenths of milliseconds longer with
> >>> this change, for executables containing one USDT probe (since such
> >>> probes are allocated during process startup).
> >>> 
> >>> So probably the right thing to do is revert this change. It doesn't
> >>> actually reduce the upstream diff as much as I'd hoped, anyway.
> >>> 
> >> 
> >> Since it is our option to decide, perhaps just keep the vmem version as reference and #ifdef FreeBSD alloc_unr() ?
> > 
> > You mean just having
> > 
> > #if defined(sun)
> > vmem code
> > #else
> > *_unr code
> > #endif
> > 
> > ? That's what we'd get by reverting the change.
> 
> 
> Rather 
> #ifdef __FreeBSD__
> *_unr code
> #else
> vmem code (FreeBSD variant)
> #endif
> 
> Not much different, but if we are going to keep dead code let’s keep at least code that is known to work ;)

IMHO, the whole point of keeping the dead code is to make it easier to
merge upstream changes, and to have a quick reference handy when comparing
illumos- and FreeBSD-specific code. That's how it's used in all of
dtrace.c, so I'd prefer to be consistent in this case as well, rather
than having two versions of FreeBSD-specific code.

-Mark


More information about the svn-src-all mailing list