vmem(9) use in Dtrace

Davide Italiano davide at freebsd.org
Sun Sep 15 19:53:49 UTC 2013


On Sun, Sep 15, 2013 at 9:27 PM, Pedro Giffuni <pfg at freebsd.org> wrote:
> Hi;
>
> Just noticed this, in the old DtraceTODO wiki:
>
> https://wiki.freebsd.org/DTraceTODO
>
> There is mention of some use that Dtrace makes of Solaris's vmem
> allocator, specifically vmem_create(), vmem_destroy(), vmem_alloc(), and
> vmem_free(). These functions (not exact but similar ones) have
> been brought to FreeBSD 10 (r252330).
>
> According to opengrok we may just have to uncomment some Solaris
> code in sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
>

We need also to provide at least some sort of wrappers for e.g. flags
passed to vmem_alloc which takes VM_SLEEP in solaris while in FreeBSD
this is M_WAITOK etc...

> This would reduce differences with the Solaris code but it has
> to be examined carefully as I think John Birrell had already
> solved the issue by providing the resource id's natively (kmem).
>
> Just thought I would point it out ... It may be that it is not
> worth spending too much time on it since the existing code should
> just work.
>

vmem is designed to be a generic resource allocator. I still need to
analyze how Dtrace uses it but in general it provides better
scalability and less fragmentation wrt home-rolled allocators we have
in the kernel. FWIW, Illumos uses it for several things, e.g. pid/tid
allocation. It might worth a try.

> Pedro.
> _______________________________________________
> freebsd-dtrace at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace
> To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe at freebsd.org"

Thanks,

-- 
Davide

"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare


More information about the freebsd-dtrace mailing list