[CFT] Use vmem in dtrace

Pedro Giffuni pfg at FreeBSD.org
Fri Dec 13 21:05:18 UTC 2013


Hi Mike;

On 13.12.2013 02:17, Mike Ma wrote:
> Hi there,
>
> I'm a GSoC student this year, and Pedro guided me to dtrace recently.
>
> I'm sending my patch for a vmem task listed in the TODO list (12th 
> item), as there is vmem subsystem in FreeBSD 10/11 available now.
> Basically, it is to revert changes from this patch 
> http://lists.freebsd.org/pipermail/p4-projects/2008-January/023466.html
> And the main difference is that vmem_create and vmem_alloc take 
> different number of parameters on FreeBSD.
>
> I did run dtrace testsuite on my own machine.
> And I hope someone here can try my patch.
>
> Any comments are appreciated.

I did some purely cosmetic cleanups (tabs and use use of the #defines) 
and placed the patch here:

http://people.freebsd.org/~pfg/patches/dtrace/dtrace_vmem.diff

However, on

sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c

This chunk looks suspicious:

@@ -13160,10 +13160,10 @@
          state = kmem_zalloc(sizeof(dtrace_state_t), KM_SLEEP);
  #endif

+#if defined(sun)
          state->dts_epid = DTRACE_EPIDNONE + 1;

          (void) snprintf(c, sizeof (c), "dtrace_aggid_%d", m);
-#if defined(sun)
          state->dts_aggid_arena = vmem_create(c, (void *)1, UINT32_MAX, 1,
              NULL, NULL, NULL, 0, VM_SLEEP | VMC_IDENTIFIER);

_____


Any reason for removing the assignment and the snprintf out of FreeBSD 
and into sun-specific code?

FWIW, SUN's code also uses dtrace_minor but it seems like it may be for 
Solaris driver specific code. Not sure if it's worth investigating.

Regards,

Pedro.





More information about the freebsd-dtrace mailing list