svn commit: r260091 - in head/sys/cddl: contrib/opensolaris/uts/common/dtrace contrib/opensolaris/uts/common/sys dev/dtrace
Pedro Giffuni
pfg at FreeBSD.org
Tue Dec 31 03:49:41 UTC 2013
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 ;)
Pedro.
More information about the svn-src-head
mailing list