Lines Matching refs:dtp

327 dt_aggregate_usym(dtrace_hdl_t *dtp, uint64_t *data)
334 if (dtp->dt_vector != NULL)
337 if ((P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0)) == NULL)
340 dt_proc_lock(dtp, P);
345 dt_proc_unlock(dtp, P);
346 dt_proc_release(dtp, P);
350 dt_aggregate_umod(dtrace_hdl_t *dtp, uint64_t *data)
357 if (dtp->dt_vector != NULL)
360 if ((P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0)) == NULL)
363 dt_proc_lock(dtp, P);
368 dt_proc_unlock(dtp, P);
369 dt_proc_release(dtp, P);
373 dt_aggregate_sym(dtrace_hdl_t *dtp, uint64_t *data)
378 if (dtrace_lookup_by_addr(dtp, *pc, &sym, NULL) == 0)
383 dt_aggregate_mod(dtrace_hdl_t *dtp, uint64_t *data)
388 if (dtp->dt_vector != NULL) {
400 for (dmp = dt_list_next(&dtp->dt_modlist); dmp != NULL;
432 dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu)
440 dt_aggregate_t *agp = &dtp->dt_aggregate;
450 if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, buf) == -1) {
460 return (dt_set_errno(dtp, errno));
464 if (dt_handle_cpudrop(dtp, cpu,
479 return (dt_set_errno(dtp, EDT_NOMEM));
500 if ((rval = dt_aggid_lookup(dtp, id, &agg)) != 0)
513 dt_aggregate_usym(dtp,
519 dt_aggregate_umod(dtp,
526 dt_aggregate_sym(dtp, (uint64_t *)&addr[roffs]);
531 dt_aggregate_mod(dtp, (uint64_t *)&addr[roffs]);
596 return (dt_set_errno(dtp, EDT_NOMEM));
602 return (dt_set_errno(dtp, EDT_NOMEM));
608 aggdata->dtada_handle = dtp;
609 (void) dt_epid_lookup(dtp, agg->dtagd_epid,
626 return (dt_set_errno(dtp, EDT_NOMEM));
638 return (dt_set_errno(dtp, EDT_NOMEM));
678 return (dt_set_errno(dtp, EDT_BADAGG));
700 dtrace_aggregate_snap(dtrace_hdl_t *dtp)
703 dt_aggregate_t *agp = &dtp->dt_aggregate;
705 dtrace_optval_t interval = dtp->dt_options[DTRACEOPT_AGGRATE];
707 if (dtp->dt_lastagg != 0) {
708 if (now - dtp->dt_lastagg < interval)
711 dtp->dt_lastagg += interval;
713 dtp->dt_lastagg = now;
716 if (!dtp->dt_active)
717 return (dt_set_errno(dtp, EINVAL));
723 if (rval = dt_aggregate_snap_cpu(dtp, agp->dtat_cpus[i]))
1068 dt_aggregate_go(dtrace_hdl_t *dtp)
1070 dt_aggregate_t *agp = &dtp->dt_aggregate;
1079 agp->dtat_maxcpu = dt_sysconf(dtp, _SC_CPUID_MAX) + 1;
1080 agp->dtat_ncpu = dt_sysconf(dtp, _SC_NPROCESSORS_MAX);
1084 return (dt_set_errno(dtp, EDT_NOMEM));
1089 size = dtp->dt_options[DTRACEOPT_AGGSIZE];
1091 rval = dtrace_getopt(dtp, "aggsize", &size);
1101 return (dt_set_errno(dtp, EDT_NOMEM));
1106 rval = dtrace_getopt(dtp, "cpu", &cpu);
1118 if (dt_status(dtp, i) == -1)
1128 dt_aggwalk_rval(dtrace_hdl_t *dtp, dt_ahashent_t *h, int rval)
1130 dt_aggregate_t *agp = &dtp->dt_aggregate;
1164 for (i = 0; i < dtp->dt_aggregate.dtat_maxcpu; i++)
1173 return (dt_set_errno(dtp, errno));
1176 return (dt_set_errno(dtp, EDT_DIRABORT));
1185 return (dt_set_errno(dtp, EDT_BADRVAL));
1241 return (dt_set_errno(dtp, EDT_BADRVAL));
1248 dt_aggregate_qsort(dtrace_hdl_t *dtp, void *base, size_t nel, size_t width,
1252 dtrace_optval_t keyposopt = dtp->dt_options[DTRACEOPT_AGGSORTKEYPOS];
1254 dt_revsort = (dtp->dt_options[DTRACEOPT_AGGSORTREV] != DTRACEOPT_UNSET);
1255 dt_keysort = (dtp->dt_options[DTRACEOPT_AGGSORTKEY] != DTRACEOPT_UNSET);
1279 dtrace_aggregate_walk(dtrace_hdl_t *dtp, dtrace_aggregate_f *func, void *arg)
1282 dt_ahash_t *hash = &dtp->dt_aggregate.dtat_hash;
1292 if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1)
1300 dt_aggregate_total(dtrace_hdl_t *dtp, boolean_t clear)
1305 dt_aggregate_t *agp = &dtp->dt_aggregate;
1331 total = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
1380 if (dtp->dt_options[DTRACEOPT_AGGZOOM] != DTRACEOPT_UNSET) {
1405 dt_free(dtp, total);
1411 dt_aggregate_minmaxbin(dtrace_hdl_t *dtp, boolean_t clear)
1416 dt_aggregate_t *agp = &dtp->dt_aggregate;
1433 minmax = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
1519 dt_free(dtp, minmax);
1525 dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
1529 dt_aggregate_t *agp = &dtp->dt_aggregate;
1537 if (dtp->dt_options[DTRACEOPT_AGGHIST] != DTRACEOPT_UNSET) {
1540 if (dt_aggregate_total(dtp, B_FALSE) != 0)
1544 if (dtp->dt_options[DTRACEOPT_AGGPACK] != DTRACEOPT_UNSET) {
1547 if (dt_aggregate_minmaxbin(dtp, B_FALSE) != 0)
1554 sorted = dt_alloc(dtp, nentries * sizeof (dt_ahashent_t *));
1565 dt_aggregate_qsort(dtp, sorted, nentries,
1581 if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1)
1588 (void) dt_aggregate_total(dtp, B_TRUE);
1591 (void) dt_aggregate_minmaxbin(dtp, B_TRUE);
1593 dt_free(dtp, sorted);
1598 dtrace_aggregate_walk_sorted(dtrace_hdl_t *dtp,
1601 return (dt_aggregate_walk_sorted(dtp, func, arg, NULL));
1605 dtrace_aggregate_walk_keysorted(dtrace_hdl_t *dtp,
1608 return (dt_aggregate_walk_sorted(dtp, func,
1613 dtrace_aggregate_walk_valsorted(dtrace_hdl_t *dtp,
1616 return (dt_aggregate_walk_sorted(dtp, func,
1621 dtrace_aggregate_walk_keyvarsorted(dtrace_hdl_t *dtp,
1624 return (dt_aggregate_walk_sorted(dtp, func,
1629 dtrace_aggregate_walk_valvarsorted(dtrace_hdl_t *dtp,
1632 return (dt_aggregate_walk_sorted(dtp, func,
1637 dtrace_aggregate_walk_keyrevsorted(dtrace_hdl_t *dtp,
1640 return (dt_aggregate_walk_sorted(dtp, func,
1645 dtrace_aggregate_walk_valrevsorted(dtrace_hdl_t *dtp,
1648 return (dt_aggregate_walk_sorted(dtp, func,
1653 dtrace_aggregate_walk_keyvarrevsorted(dtrace_hdl_t *dtp,
1656 return (dt_aggregate_walk_sorted(dtp, func,
1661 dtrace_aggregate_walk_valvarrevsorted(dtrace_hdl_t *dtp,
1664 return (dt_aggregate_walk_sorted(dtp, func,
1669 dtrace_aggregate_walk_joined(dtrace_hdl_t *dtp, dtrace_aggvarid_t *aggvars,
1672 dt_aggregate_t *agp = &dtp->dt_aggregate;
1681 dtrace_optval_t sortpos = dtp->dt_options[DTRACEOPT_AGGSORTPOS];
1697 return (dt_set_errno(dtp, EDT_BADAGGVAR));
1703 if ((map = dt_zalloc(dtp, (max + 1) * sizeof (int))) == NULL)
1706 zaggdata = dt_zalloc(dtp, naggvars * sizeof (dt_ahashent_t));
1732 remap = dt_zalloc(dtp, naggvars * sizeof (int));
1813 if (dt_aggid_lookup(dtp, j, &agg) != 0)
1826 aggdata->dtada_handle = dtp;
1827 (void) dt_epid_lookup(dtp, agg->dtagd_epid,
1878 if ((zdata = dt_zalloc(dtp, zsize)) == NULL) {
1956 sorted = dt_alloc(dtp, nentries * sizeof (dt_ahashent_t *));
2006 if ((nbundle = dt_zalloc(dtp, bundlesize)) == NULL) {
2054 dt_aggregate_qsort(dtp, bundle, nbundles, sizeof (dt_ahashent_t **),
2097 dt_free(dtp, bundle[i]);
2101 dt_free(dtp, zaggdata[i].dtahe_data.dtada_data);
2104 dt_free(dtp, zaggdata);
2105 dt_free(dtp, sorted);
2106 dt_free(dtp, remap);
2107 dt_free(dtp, map);
2113 dtrace_aggregate_print(dtrace_hdl_t *dtp, FILE *fp,
2120 pd.dtpa_dtp = dtp;
2127 if ((*func)(dtp, dt_print_agg, &pd) == -1)
2128 return (dt_set_errno(dtp, dtp->dt_errno));
2134 dtrace_aggregate_clear(dtrace_hdl_t *dtp)
2136 dt_aggregate_t *agp = &dtp->dt_aggregate;
2160 dt_aggregate_destroy(dtrace_hdl_t *dtp)
2162 dt_aggregate_t *agp = &dtp->dt_aggregate;