Lines Matching refs:dtp
401 dt_flowindent(dtrace_hdl_t *dtp, dtrace_probedata_t *data, dtrace_epid_t last,
448 pd->dtpd_id == dtp->dt_pdesc[last]->dtpd_id))
470 if ((rval = dt_epid_lookup(dtp, next, &nepd, &npd)) != 0)
505 dt_quantize_total(dtrace_hdl_t *dtp, int64_t datum, long double *total)
509 if (dtp->dt_options[DTRACEOPT_AGGZOOM] == DTRACEOPT_UNSET) {
527 dt_print_quanthdr(dtrace_hdl_t *dtp, FILE *fp, int width)
529 return (dt_printf(dtp, fp, "\n%*s %41s %-9s\n",
535 dt_print_quanthdr_packed(dtrace_hdl_t *dtp, FILE *fp, int width,
558 if (dt_printf(dtp, fp, "\n%*s %*s .",
563 if (dt_printf(dtp, fp, "-") < 0)
567 return (dt_printf(dtp, fp, ". %*s | count\n", -maxwidth, "max"));
584 dt_print_quantline_utf8(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
595 if (dt_printf(dtp, fp, "|") < 0)
599 if (dt_printf(dtp, fp, "%c%c%c",
609 if (dt_printf(dtp, fp, "%c%c%c",
618 return (dt_printf(dtp, fp, "%s %-9lld\n", spaces + i,
623 dt_print_quantline(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
640 if (dtp->dt_encoding == DT_ENCODING_UTF8) {
641 return (dt_print_quantline_utf8(dtp, fp, val,
651 return (dt_printf(dtp, fp, "|%s%s %-9lld\n", ats + len - depth,
659 return (dt_printf(dtp, fp, "%s%s| %-9lld\n", spaces + depth,
678 return (dt_printf(dtp, fp, "%s%s|%*s %-9lld\n", spaces + depth,
681 return (dt_printf(dtp, fp, "%20s|%s%s %-9lld\n", "",
696 dt_print_packed(dtrace_hdl_t *dtp, FILE *fp,
716 if (dtp->dt_encoding == DT_ENCODING_ASCII) {
718 } else if (dtp->dt_encoding == DT_ENCODING_UTF8) {
731 return (dt_printf(dtp, fp, " "));
736 return (dt_printf(dtp, fp, "%c", neg[(uint_t)(val + 0.5)]));
743 return (dt_printf(dtp, fp, "%c%c%c",
751 return (dt_printf(dtp, fp, "%c", ascii[(uint_t)(val + 0.5)]));
755 dt_print_quantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
764 return (dt_set_errno(dtp, EDT_DMISMATCH));
791 dt_quantize_total(dtp, data[i], &total);
794 if (dt_print_quanthdr(dtp, fp, 0) < 0)
798 if (dt_printf(dtp, fp, "%16lld ",
802 if (dt_print_quantline(dtp, fp, data[i], normal, total,
811 dt_print_quantize_packed(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
820 return (dt_set_errno(dtp, EDT_DMISMATCH));
831 if (dt_printf(dtp, fp, " %*lld :", dt_ndigits(minval),
836 dt_quantize_total(dtp, data[i], &total);
841 if (dt_print_packed(dtp, fp, data[i], total) < 0)
845 if (dt_printf(dtp, fp, ": %*lld | %lld\n",
853 dt_print_lquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
864 return (dt_set_errno(dtp, EDT_DMISMATCH));
877 return (dt_set_errno(dtp, EDT_DMISMATCH));
899 dt_quantize_total(dtp, data[i], &total);
902 if (dt_printf(dtp, fp, "\n%16s %41s %-9s\n", "value",
912 err = dt_printf(dtp, fp, "%16s ", c);
916 err = dt_printf(dtp, fp, "%16s ", c);
918 err = dt_printf(dtp, fp, "%16d ",
922 if (err < 0 || dt_print_quantline(dtp, fp, data[i], normal,
932 dt_print_lquantize_packed(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
944 return (dt_set_errno(dtp, EDT_DMISMATCH));
954 return (dt_set_errno(dtp, EDT_DMISMATCH));
961 err = dt_printf(dtp, fp, "%8s :", c);
963 err = dt_printf(dtp, fp, "%8d :", base + (min - 1) * step);
970 dt_quantize_total(dtp, data[i], &total);
975 if (dt_print_packed(dtp, fp, data[i], total) < 0)
980 return (dt_printf(dtp, fp, ": %-8s | %lld\n", c, (long long)count));
984 dt_print_llquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
997 return (dt_set_errno(dtp, EDT_DMISMATCH));
1013 return (dt_set_errno(dtp, EDT_DMISMATCH));
1040 dt_quantize_total(dtp, data[i], &total);
1043 if (dt_printf(dtp, fp, "\n%16s %41s %-9s\n", "value",
1056 if (dt_printf(dtp, fp, "%16s ", c) < 0)
1059 if (dt_print_quantline(dtp, fp, data[0], normal,
1066 if (dt_printf(dtp, fp, "%16lld ", (long long)value) < 0)
1069 if (dt_print_quantline(dtp, fp, data[bin],
1091 if (dt_printf(dtp, fp, "%16s ", c) < 0)
1094 return (dt_print_quantline(dtp, fp, data[bin], normal,
1100 dt_print_average(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
1106 return (dt_printf(dtp, fp, " %16lld", data[0] ?
1112 dt_print_stddev(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
1118 return (dt_printf(dtp, fp, " %16llu", data[0] ?
1124 dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
1141 if (dtp->dt_options[DTRACEOPT_RAWBYTES] != DTRACEOPT_UNSET)
1177 return (dt_printf(dtp, fp, "%s", c));
1179 return (dt_printf(dtp, fp, " %s%*s",
1196 return (dt_printf(dtp, fp, " %-*s", width, s));
1200 if (dt_printf(dtp, fp, "\n%*s ", margin, "") < 0)
1204 if (dt_printf(dtp, fp, " %c", "0123456789abcdef"[i]) < 0)
1207 if (dt_printf(dtp, fp, " 0123456789abcdef\n") < 0)
1212 if (dt_printf(dtp, fp, "%*s%5x:", margin, "", i) < 0)
1216 if (dt_printf(dtp, fp, " %02x", (uchar_t)c[j]) < 0)
1221 if (dt_printf(dtp, fp, " ") < 0)
1225 if (dt_printf(dtp, fp, " ") < 0)
1229 if (dt_printf(dtp, fp, "%c",
1234 if (dt_printf(dtp, fp, "\n") < 0)
1242 dt_print_stack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
1251 if (dt_printf(dtp, fp, "\n") < 0)
1257 if (dtp->dt_options[DTRACEOPT_STACKINDENT] != DTRACEOPT_UNSET)
1258 indent = (int)dtp->dt_options[DTRACEOPT_STACKINDENT];
1275 return (dt_set_errno(dtp, EDT_BADSTACKPC));
1283 if (dt_printf(dtp, fp, "%*s", indent, "") < 0)
1286 if (dtrace_lookup_by_addr(dtp, pc, &sym, &dts) == 0) {
1301 if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
1309 if (dt_printf(dtp, fp, format, c) < 0)
1312 if (dt_printf(dtp, fp, "\n") < 0)
1320 dt_print_ustack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
1342 if (dt_printf(dtp, fp, "\n") < 0)
1348 if (dtp->dt_options[DTRACEOPT_STACKINDENT] != DTRACEOPT_UNSET)
1349 indent = (int)dtp->dt_options[DTRACEOPT_STACKINDENT];
1358 if (dtp->dt_vector == NULL)
1359 P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0);
1364 dt_proc_lock(dtp, P); /* lock handle while we perform lookups */
1369 if ((err = dt_printf(dtp, fp, "%*s", indent, "")) < 0)
1415 if ((err = dt_printf(dtp, fp, format, c)) < 0)
1418 if ((err = dt_printf(dtp, fp, "\n")) < 0)
1428 if ((err = dt_printf(dtp, fp, "%*s", indent, "")) < 0)
1433 if ((err = dt_printf(dtp, fp, format, c)) < 0)
1436 if ((err = dt_printf(dtp, fp, "\n")) < 0)
1448 dt_proc_unlock(dtp, P);
1449 dt_proc_release(dtp, P);
1456 dt_print_usym(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr, dtrace_actkind_t act)
1466 if (act == DTRACEACT_USYM && dtp->dt_vector == NULL) {
1469 if ((P = dt_proc_grab(dtp, pid,
1473 dt_proc_lock(dtp, P);
1478 dt_proc_unlock(dtp, P);
1479 dt_proc_release(dtp, P);
1486 } while ((len = dtrace_uaddr2str(dtp, pid, pc, s, n)) > n);
1488 return (dt_printf(dtp, fp, format, s));
1492 dt_print_umod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
1510 if (dtp->dt_vector == NULL)
1511 P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0);
1516 dt_proc_lock(dtp, P); /* lock handle while we perform lookups */
1524 err = dt_printf(dtp, fp, format, c);
1527 dt_proc_unlock(dtp, P);
1528 dt_proc_release(dtp, P);
1535 dt_print_sym(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
1546 if (dtrace_lookup_by_addr(dtp, pc, &sym, &dts) == 0) {
1555 if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
1564 if (dt_printf(dtp, fp, format, c) < 0)
1571 dt_print_mod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
1581 if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
1587 if (dt_printf(dtp, fp, format, c) < 0)
1616 dt_normalize(dtrace_hdl_t *dtp, caddr_t base, dtrace_recdesc_t *rec)
1628 return (dt_set_errno(dtp, EDT_BADNORMAL));
1635 return (dt_set_errno(dtp, EDT_BADNORMAL));
1638 return (dt_set_errno(dtp, EDT_BADNORMAL));
1659 return (dt_set_errno(dtp, EDT_BADNORMAL));
1662 (void) dtrace_aggregate_walk(dtp, dt_normalize_agg, &normal);
1723 dt_trunc(dtrace_hdl_t *dtp, caddr_t base, dtrace_recdesc_t *rec)
1738 return (dt_set_errno(dtp, EDT_BADTRUNC));
1745 return (dt_set_errno(dtp, EDT_BADTRUNC));
1748 return (dt_set_errno(dtp, EDT_BADTRUNC));
1769 return (dt_set_errno(dtp, EDT_BADNORMAL));
1782 (void) func(dtp, dt_trunc_agg, &trunc);
1788 dt_print_datum(dtrace_hdl_t *dtp, FILE *fp, dtrace_recdesc_t *rec,
1828 if (dt_print_quanthdr(dtp, fp, width) < 0)
1831 if (dt_print_quanthdr_packed(dtp, fp,
1847 if (dt_printf(dtp, fp, " ") < 0)
1850 return (dt_print_quantline(dtp, fp, val, normal,
1857 return (dt_print_quantize_packed(dtp,
1860 return (dt_print_lquantize_packed(dtp,
1869 return (dt_print_stack(dtp, fp, NULL, addr,
1874 return (dt_print_ustack(dtp, fp, NULL, addr, rec->dtrd_arg));
1878 return (dt_print_usym(dtp, fp, addr, act));
1881 return (dt_print_umod(dtp, fp, NULL, addr));
1884 return (dt_print_sym(dtp, fp, NULL, addr));
1887 return (dt_print_mod(dtp, fp, NULL, addr));
1890 return (dt_print_quantize(dtp, fp, addr, size, normal));
1893 return (dt_print_lquantize(dtp, fp, addr, size, normal));
1896 return (dt_print_llquantize(dtp, fp, addr, size, normal));
1899 return (dt_print_average(dtp, fp, addr, size, normal));
1902 return (dt_print_stddev(dtp, fp, addr, size, normal));
1915 err = dt_printf(dtp, fp, " %*lld", width,
1921 err = dt_printf(dtp, fp, " %*d", width, *((uint32_t *)addr) /
1926 err = dt_printf(dtp, fp, " %*d", width, *((uint16_t *)addr) /
1930 err = dt_printf(dtp, fp, " %*d", width, *((uint8_t *)addr) /
1934 err = dt_print_bytes(dtp, fp, addr, size, width, 0, 0);
1949 dtrace_hdl_t *dtp = pd->dtpa_dtp;
1974 if (dt_print_datum(dtp, fp, rec, addr,
1978 if (dt_buffered_flush(dtp, NULL, rec, aggdata,
1998 if (dt_print_datum(dtp, fp, rec, addr,
2002 if (dt_buffered_flush(dtp, NULL, rec, aggdata,
2011 if (dt_printf(dtp, fp, "\n") < 0)
2015 if (dt_buffered_flush(dtp, NULL, NULL, aggdata,
2050 dt_setopt(dtrace_hdl_t *dtp, const dtrace_probedata_t *data,
2059 (void) dtrace_getopt(dtp, option, &optdata.dtsda_oldval);
2061 if (dtrace_setopt(dtp, option, value) == 0) {
2062 (void) dtrace_getopt(dtp, option, &optdata.dtsda_newval);
2065 optdata.dtsda_handle = dtp;
2067 if ((rval = dt_handle_setopt(dtp, &optdata)) != 0)
2073 errstr = dtrace_errmsg(dtp, dtrace_errno(dtp));
2080 if ((rval = dt_handle_liberr(dtp, data, msg)) == 0)
2087 dt_consume_cpu(dtrace_hdl_t *dtp, FILE *fp, int cpu,
2093 int flow = (dtp->dt_options[DTRACEOPT_FLOWINDENT] != DTRACEOPT_UNSET);
2094 int quiet = (dtp->dt_options[DTRACEOPT_QUIET] != DTRACEOPT_UNSET);
2101 data.dtpda_handle = dtp;
2103 data.dtpda_flow = dtp->dt_flow;
2104 data.dtpda_indent = dtp->dt_indent;
2105 data.dtpda_prefix = dtp->dt_prefix;
2124 if ((rval = dt_epid_lookup(dtp, id, &data.dtpda_edesc,
2132 rval = dt_handle(dtp, &data);
2142 (void) dt_flowindent(dtp, &data, dtp->dt_last_epid,
2156 return (dt_set_errno(dtp, EDT_DIRABORT));
2159 return (dt_set_errno(dtp, EDT_BADRVAL));
2178 (void) dtrace_aggregate_walk(dtp,
2185 (void) dtrace_aggregate_walk(dtp,
2200 return (dt_set_errno(dtp,
2203 if (dt_normalize(dtp,
2211 uint64_t *opts = dtp->dt_options;
2218 return (dt_set_errno(dtp,
2227 return (dt_set_errno(dtp,
2238 rv = dt_setopt(dtp, &data, addr, val);
2253 return (dt_set_errno(dtp,
2256 if (dt_trunc(dtp,
2281 return (dt_set_errno(dtp, EDT_DIRABORT));
2284 return (dt_set_errno(dtp, EDT_BADRVAL));
2289 if (dt_print_stack(dtp, fp, NULL, addr, depth,
2297 if (dt_print_ustack(dtp, fp, NULL,
2304 if (dt_print_sym(dtp, fp, NULL, addr) < 0)
2310 if (dt_print_mod(dtp, fp, NULL, addr) < 0)
2316 if (dt_print_usym(dtp, fp, addr, act) < 0)
2322 if (dt_print_umod(dtp, fp, NULL, addr) < 0)
2334 if ((fmtdata = dt_format_lookup(dtp,
2353 n = (*func)(dtp, fp, fmtdata, &data,
2373 const char *strdata = dt_strdata_lookup(dtp,
2376 n = dtrace_print(dtp, fp, strdata,
2403 if ((aggvars = dt_alloc(dtp, size)) == NULL)
2422 return (dt_set_errno(dtp,
2436 pd.dtpa_dtp = dtp;
2443 dt_free(dtp, aggvars);
2445 if (dt_printf(dtp, fp, "\n") < 0 ||
2446 dtrace_aggregate_walk_sorted(dtp,
2452 if (dt_printf(dtp, fp, "\n") < 0 ||
2453 dtrace_aggregate_walk_joined(dtp, aggvars,
2455 dt_free(dtp, aggvars);
2459 dt_free(dtp, aggvars);
2469 n = dt_print_bytes(dtp, fp, addr,
2482 n = dt_printf(dtp, fp,
2488 n = dt_printf(dtp, fp, quiet ? "%d" : " %8d",
2493 n = dt_printf(dtp, fp, quiet ? "%d" : " %5d",
2498 n = dt_printf(dtp, fp, quiet ? "%d" : " %3d",
2502 n = dt_print_bytes(dtp, fp, addr,
2511 if (dt_buffered_flush(dtp, &data, rec, NULL, 0) < 0)
2522 dtp->dt_last_epid = id;
2529 dtp->dt_flow = data.dtpda_flow;
2530 dtp->dt_indent = data.dtpda_indent;
2531 dtp->dt_prefix = data.dtpda_prefix;
2541 return (dt_handle_cpudrop(dtp, cpu, DTRACEDROP_PRINCIPAL, drops));
2550 dt_realloc_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf, int cursize)
2555 char *newdata = dt_alloc(dtp, used + misalign);
2561 dt_free(dtp, buf->dtbd_data);
2574 dt_unring_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf)
2583 newdata = ndp = dt_alloc(dtp, buf->dtbd_size + misalign);
2599 dt_free(dtp, buf->dtbd_data);
2608 dt_put_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf)
2610 dt_free(dtp, buf->dtbd_data);
2611 dt_free(dtp, buf);
2620 dt_get_buf(dtrace_hdl_t *dtp, int cpu, dtrace_bufdesc_t **bufp)
2623 dtrace_bufdesc_t *buf = dt_zalloc(dtp, sizeof (*buf));
2629 (void) dtrace_getopt(dtp, "bufsize", &size);
2630 buf->dtbd_data = dt_alloc(dtp, size);
2632 dt_free(dtp, buf);
2638 if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
2639 dt_put_buf(dtp, buf);
2650 return (dt_set_errno(dtp, errno));
2653 error = dt_unring_buf(dtp, buf);
2655 dt_put_buf(dtp, buf);
2658 dt_realloc_buf(dtp, buf, size);
2727 dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp,
2753 processorid_t cpu = dtp->dt_beganon;
2758 dtp->dt_beganon = -1;
2760 if (dt_get_buf(dtp, cpu, &buf) != 0)
2765 if (!dtp->dt_stopped || buf->dtbd_cpu != dtp->dt_endedon) {
2771 rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
2773 dt_put_buf(dtp, buf);
2786 begin.dtbgn_errhdlr = dtp->dt_errhdlr;
2787 begin.dtbgn_errarg = dtp->dt_errarg;
2788 dtp->dt_errhdlr = dt_consume_begin_error;
2789 dtp->dt_errarg = &begin;
2791 rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
2794 dtp->dt_errhdlr = begin.dtbgn_errhdlr;
2795 dtp->dt_errarg = begin.dtbgn_errarg;
2798 dt_put_buf(dtp, buf);
2803 max_ncpus = dt_sysconf(dtp, _SC_CPUID_MAX) + 1;
2810 if (dt_get_buf(dtp, i, &nbuf) != 0) {
2811 dt_put_buf(dtp, buf);
2817 rval = dt_consume_cpu(dtp, fp, i, nbuf, B_FALSE,
2819 dt_put_buf(dtp, nbuf);
2821 dt_put_buf(dtp, buf);
2835 assert(begin.dtbgn_errhdlr == dtp->dt_errhdlr);
2836 assert(begin.dtbgn_errarg == dtp->dt_errarg);
2837 dtp->dt_errhdlr = dt_consume_begin_error;
2838 dtp->dt_errarg = &begin;
2840 rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
2843 dtp->dt_errhdlr = begin.dtbgn_errhdlr;
2844 dtp->dt_errarg = begin.dtbgn_errarg;
2872 dtrace_consume(dtrace_hdl_t *dtp, FILE *fp,
2878 dtrace_optval_t interval = dtp->dt_options[DTRACEOPT_SWITCHRATE];
2881 if (dtp->dt_lastswitch != 0) {
2882 if (now - dtp->dt_lastswitch < interval)
2885 dtp->dt_lastswitch += interval;
2887 dtp->dt_lastswitch = now;
2890 if (!dtp->dt_active)
2891 return (dt_set_errno(dtp, EINVAL));
2894 max_ncpus = dt_sysconf(dtp, _SC_CPUID_MAX) + 1;
2902 if (dtp->dt_options[DTRACEOPT_TEMPORAL] == DTRACEOPT_UNSET) {
2913 if (dtp->dt_active && dtp->dt_beganon != -1 &&
2914 (rval = dt_consume_begin(dtp, fp, pf, rf, arg)) != 0)
2925 if (dtp->dt_stopped && (i == dtp->dt_endedon))
2928 if (dt_get_buf(dtp, i, &buf) != 0)
2933 dtp->dt_flow = 0;
2934 dtp->dt_indent = 0;
2935 dtp->dt_prefix = NULL;
2936 rval = dt_consume_cpu(dtp, fp, i,
2938 dt_put_buf(dtp, buf);
2942 if (dtp->dt_stopped) {
2945 if (dt_get_buf(dtp, dtp->dt_endedon, &buf) != 0)
2950 rval = dt_consume_cpu(dtp, fp, dtp->dt_endedon,
2952 dt_put_buf(dtp, buf);
2980 if (dtp->dt_bufq == NULL) {
2981 dtp->dt_bufq = dt_pq_init(dtp, max_ncpus * 2,
2983 if (dtp->dt_bufq == NULL) /* ENOMEM */
2988 (void) dtrace_getopt(dtp, "bufsize", &size);
2992 if (dt_get_buf(dtp, i, &buf) != 0)
2999 dt_pq_insert(dtp->dt_bufq, buf);
3007 dtrace_bufdesc_t *buf = dt_pq_pop(dtp->dt_bufq);
3013 timestamp = dt_buf_oldest(buf, dtp);
3014 assert(timestamp >= dtp->dt_last_timestamp);
3015 dtp->dt_last_timestamp = timestamp;
3024 dt_put_buf(dtp, buf);
3026 !dtp->dt_stopped)
3031 if ((rval = dt_consume_cpu(dtp, fp,
3034 dt_pq_insert(dtp->dt_bufq, buf);
3040 int error = dt_handle_cpudrop(dtp, i,
3051 while (buf = dt_pq_walk(dtp->dt_bufq, &cookie))
3052 dt_realloc_buf(dtp, buf, buf->dtbd_size);