Print this page
INTRO-118 enabling USDT probes in zones should be more scalable

*** 20,29 **** --- 20,30 ---- */ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2011, Joyent, Inc. All rights reserved. */ #include <unistd.h> #include <strings.h> #include <stdlib.h>
*** 152,161 **** --- 153,180 ---- dtrace_proginfo_t *pip) { void *dof; int n, err; + if (!dtp->dt_optset) { + /* + * If we have not yet ioctl'd down our options DOF, we'll + * do that before enabling any probes (some options will + * affect which probes we match). + */ + if ((dof = dtrace_getopt_dof(dtp)) == NULL) + return (-1); /* dt_errno has been set for us */ + + err = dt_ioctl(dtp, DTRACEIOC_ENABLE, dof); + dtrace_dof_destroy(dtp, dof); + + if (err == -1) + return (-1); + + dtp->dt_optset = B_TRUE; + } + dtrace_program_info(dtp, pgp, pip); if ((dof = dtrace_dof_create(dtp, pgp, DTRACE_D_STRIP)) == NULL) return (-1);