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

*** 23,33 **** /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ ! #pragma ident "%Z%%M% %I% %E% SMI" #include <dt_impl.h> #include <stddef.h> #include <errno.h> #include <assert.h> --- 23,35 ---- /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ ! /* ! * Copyright (c) 2011, Joyent, Inc. All rights reserved. ! */ #include <dt_impl.h> #include <stddef.h> #include <errno.h> #include <assert.h>
*** 162,174 **** } int dtrace_go(dtrace_hdl_t *dtp) { - void *dof; - int err; - if (dtp->dt_active) return (dt_set_errno(dtp, EINVAL)); /* * If a dtrace:::ERROR program and callback are registered, enable the --- 164,173 ----
*** 180,198 **** if (dtp->dt_errprog != NULL && dtrace_program_exec(dtp, dtp->dt_errprog, NULL) == -1 && ( dtp->dt_errno != ENOTTY || dtp->dt_vector == NULL)) return (-1); /* dt_errno has been set for us */ - 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 && (errno != ENOTTY || dtp->dt_vector == NULL)) - return (dt_set_errno(dtp, errno)); - if (dt_ioctl(dtp, DTRACEIOC_GO, &dtp->dt_beganon) == -1) { if (errno == EACCES) return (dt_set_errno(dtp, EDT_DESTRUCTIVE)); if (errno == EALREADY) --- 179,188 ----