Lines Matching refs:dtp

333 dt_aggregate_usym(dtrace_hdl_t *dtp, uint64_t *data)
340 if (dtp->dt_vector != NULL)
343 if ((P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0)) == NULL)
346 dt_proc_lock(dtp, P);
351 dt_proc_unlock(dtp, P);
352 dt_proc_release(dtp, P);
356 dt_aggregate_umod(dtrace_hdl_t *dtp, uint64_t *data)
363 if (dtp->dt_vector != NULL)
366 if ((P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0)) == NULL)
369 dt_proc_lock(dtp, P);
374 dt_proc_unlock(dtp, P);
375 dt_proc_release(dtp, P);
379 dt_aggregate_sym(dtrace_hdl_t *dtp, uint64_t *data)
384 if (dtrace_lookup_by_addr(dtp, *pc, &sym, NULL) == 0)
389 dt_aggregate_mod(dtrace_hdl_t *dtp, uint64_t *data)
394 if (dtp->dt_vector != NULL) {
406 for (dmp = dt_list_next(&dtp->dt_modlist); dmp != NULL;
438 dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu)
446 dt_aggregate_t *agp = &dtp->dt_aggregate;
457 if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, buf) == -1) {
459 if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, &buf) == -1) {
470 return (dt_set_errno(dtp, errno));
474 if (dt_handle_cpudrop(dtp, cpu,
489 return (dt_set_errno(dtp, EDT_NOMEM));
510 if ((rval = dt_aggid_lookup(dtp, id, &agg)) != 0)
523 dt_aggregate_usym(dtp,
529 dt_aggregate_umod(dtp,
536 dt_aggregate_sym(dtp, (uint64_t *)&addr[roffs]);
541 dt_aggregate_mod(dtp, (uint64_t *)&addr[roffs]);
606 return (dt_set_errno(dtp, EDT_NOMEM));
612 return (dt_set_errno(dtp, EDT_NOMEM));
618 aggdata->dtada_handle = dtp;
619 (void) dt_epid_lookup(dtp, agg->dtagd_epid,
636 return (dt_set_errno(dtp, EDT_NOMEM));
648 return (dt_set_errno(dtp, EDT_NOMEM));
688 return (dt_set_errno(dtp, EDT_BADAGG));
710 dtrace_aggregate_snap(dtrace_hdl_t *dtp)
713 dt_aggregate_t *agp = &dtp->dt_aggregate;
715 dtrace_optval_t interval = dtp->dt_options[DTRACEOPT_AGGRATE];
717 if (dtp->dt_lastagg != 0) {
718 if (now - dtp->dt_lastagg < interval)
721 dtp->dt_lastagg += interval;
723 dtp->dt_lastagg = now;
726 if (!dtp->dt_active)
727 return (dt_set_errno(dtp, EINVAL));
733 if ((rval = dt_aggregate_snap_cpu(dtp, agp->dtat_cpus[i])))
1078 dt_aggregate_go(dtrace_hdl_t *dtp)
1080 dt_aggregate_t *agp = &dtp->dt_aggregate;
1089 agp->dtat_maxcpu = dt_sysconf(dtp, _SC_CPUID_MAX) + 1;
1090 agp->dtat_ncpu = dt_sysconf(dtp, _SC_NPROCESSORS_MAX);
1094 return (dt_set_errno(dtp, EDT_NOMEM));
1099 size = dtp->dt_options[DTRACEOPT_AGGSIZE];
1101 rval = dtrace_getopt(dtp, "aggsize", &size);
1111 return (dt_set_errno(dtp, EDT_NOMEM));
1116 rval = dtrace_getopt(dtp, "cpu", &cpu);
1128 if (dt_status(dtp, i) == -1)
1138 dt_aggwalk_rval(dtrace_hdl_t *dtp, dt_ahashent_t *h, int rval)
1140 dt_aggregate_t *agp = &dtp->dt_aggregate;
1168 for (i = 0; i < dtp->dt_aggregate.dtat_maxcpu; i++)
1177 return (dt_set_errno(dtp, errno));
1180 return (dt_set_errno(dtp, EDT_DIRABORT));
1189 return (dt_set_errno(dtp, EDT_BADRVAL));
1245 return (dt_set_errno(dtp, EDT_BADRVAL));
1252 dt_aggregate_qsort(dtrace_hdl_t *dtp, void *base, size_t nel, size_t width,
1256 dtrace_optval_t keyposopt = dtp->dt_options[DTRACEOPT_AGGSORTKEYPOS];
1258 dt_revsort = (dtp->dt_options[DTRACEOPT_AGGSORTREV] != DTRACEOPT_UNSET);
1259 dt_keysort = (dtp->dt_options[DTRACEOPT_AGGSORTKEY] != DTRACEOPT_UNSET);
1283 dtrace_aggregate_walk(dtrace_hdl_t *dtp, dtrace_aggregate_f *func, void *arg)
1286 dt_ahash_t *hash = &dtp->dt_aggregate.dtat_hash;
1296 if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1)
1304 dt_aggregate_total(dtrace_hdl_t *dtp, boolean_t clear)
1309 dt_aggregate_t *agp = &dtp->dt_aggregate;
1335 total = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
1384 if (dtp->dt_options[DTRACEOPT_AGGZOOM] != DTRACEOPT_UNSET) {
1409 dt_free(dtp, total);
1415 dt_aggregate_minmaxbin(dtrace_hdl_t *dtp, boolean_t clear)
1420 dt_aggregate_t *agp = &dtp->dt_aggregate;
1437 minmax = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
1523 dt_free(dtp, minmax);
1529 dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
1533 dt_aggregate_t *agp = &dtp->dt_aggregate;
1541 if (dtp->dt_options[DTRACEOPT_AGGHIST] != DTRACEOPT_UNSET) {
1544 if (dt_aggregate_total(dtp, B_FALSE) != 0)
1548 if (dtp->dt_options[DTRACEOPT_AGGPACK] != DTRACEOPT_UNSET) {
1551 if (dt_aggregate_minmaxbin(dtp, B_FALSE) != 0)
1558 sorted = dt_alloc(dtp, nentries * sizeof (dt_ahashent_t *));
1569 dt_aggregate_qsort(dtp, sorted, nentries,
1585 if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1)
1592 (void) dt_aggregate_total(dtp, B_TRUE);
1595 (void) dt_aggregate_minmaxbin(dtp, B_TRUE);
1597 dt_free(dtp, sorted);
1602 dtrace_aggregate_walk_sorted(dtrace_hdl_t *dtp,
1605 return (dt_aggregate_walk_sorted(dtp, func, arg, NULL));
1609 dtrace_aggregate_walk_keysorted(dtrace_hdl_t *dtp,
1612 return (dt_aggregate_walk_sorted(dtp, func,
1617 dtrace_aggregate_walk_valsorted(dtrace_hdl_t *dtp,
1620 return (dt_aggregate_walk_sorted(dtp, func,
1625 dtrace_aggregate_walk_keyvarsorted(dtrace_hdl_t *dtp,
1628 return (dt_aggregate_walk_sorted(dtp, func,
1633 dtrace_aggregate_walk_valvarsorted(dtrace_hdl_t *dtp,
1636 return (dt_aggregate_walk_sorted(dtp, func,
1641 dtrace_aggregate_walk_keyrevsorted(dtrace_hdl_t *dtp,
1644 return (dt_aggregate_walk_sorted(dtp, func,
1649 dtrace_aggregate_walk_valrevsorted(dtrace_hdl_t *dtp,
1652 return (dt_aggregate_walk_sorted(dtp, func,
1657 dtrace_aggregate_walk_keyvarrevsorted(dtrace_hdl_t *dtp,
1660 return (dt_aggregate_walk_sorted(dtp, func,
1665 dtrace_aggregate_walk_valvarrevsorted(dtrace_hdl_t *dtp,
1668 return (dt_aggregate_walk_sorted(dtp, func,
1673 dtrace_aggregate_walk_joined(dtrace_hdl_t *dtp, dtrace_aggvarid_t *aggvars,
1676 dt_aggregate_t *agp = &dtp->dt_aggregate;
1685 dtrace_optval_t sortpos = dtp->dt_options[DTRACEOPT_AGGSORTPOS];
1701 return (dt_set_errno(dtp, EDT_BADAGGVAR));
1707 if ((map = dt_zalloc(dtp, (max + 1) * sizeof (int))) == NULL)
1710 zaggdata = dt_zalloc(dtp, naggvars * sizeof (dt_ahashent_t));
1736 remap = dt_zalloc(dtp, naggvars * sizeof (int));
1817 if (dt_aggid_lookup(dtp, j, &agg) != 0)
1830 aggdata->dtada_handle = dtp;
1831 (void) dt_epid_lookup(dtp, agg->dtagd_epid,
1882 if ((zdata = dt_zalloc(dtp, zsize)) == NULL) {
1959 sorted = dt_alloc(dtp, nentries * sizeof (dt_ahashent_t *));
2009 if ((nbundle = dt_zalloc(dtp, bundlesize)) == NULL) {
2057 dt_aggregate_qsort(dtp, bundle, nbundles, sizeof (dt_ahashent_t **),
2100 dt_free(dtp, bundle[i]);
2104 dt_free(dtp, zaggdata[i].dtahe_data.dtada_data);
2107 dt_free(dtp, zaggdata);
2108 dt_free(dtp, sorted);
2109 dt_free(dtp, remap);
2110 dt_free(dtp, map);
2116 dtrace_aggregate_print(dtrace_hdl_t *dtp, FILE *fp,
2123 pd.dtpa_dtp = dtp;
2130 if ((*func)(dtp, dt_print_agg, &pd) == -1)
2131 return (dt_set_errno(dtp, dtp->dt_errno));
2137 dtrace_aggregate_clear(dtrace_hdl_t *dtp)
2139 dt_aggregate_t *agp = &dtp->dt_aggregate;
2163 dt_aggregate_destroy(dtrace_hdl_t *dtp)
2165 dt_aggregate_t *agp = &dtp->dt_aggregate;