Lines Matching defs:evsel
20 #include "util/evsel.h"
336 static inline struct evsel_script *evsel_script(struct evsel *evsel)
338 return (struct evsel_script *)evsel->priv;
341 static struct evsel_script *evsel_script__new(struct evsel *evsel, struct perf_data *data)
346 if (asprintf(&es->filename, "%s.%s.dump", data->file.path, evsel__name(evsel)) < 0)
417 static int evsel__do_check_stype(struct evsel *evsel, u64 sample_type, const char *sample_msg,
420 struct perf_event_attr *attr = &evsel->core.attr;
430 evname = evsel__name(evsel);
439 evname = evsel__name(evsel);
447 static int evsel__check_stype(struct evsel *evsel, u64 sample_type, const char *sample_msg,
450 return evsel__do_check_stype(evsel, sample_type, sample_msg, field, false);
453 static int evsel__check_attr(struct evsel *evsel, struct perf_session *session)
455 struct perf_event_attr *attr = &evsel->core.attr;
458 if (evsel__is_dummy_event(evsel))
472 if (evsel__check_stype(evsel, PERF_SAMPLE_IP, "IP", PERF_OUTPUT_IP))
477 evsel__do_check_stype(evsel, PERF_SAMPLE_ADDR, "ADDR", PERF_OUTPUT_ADDR, allow_user_set))
481 evsel__do_check_stype(evsel, PERF_SAMPLE_DATA_SRC, "DATA_SRC", PERF_OUTPUT_DATA_SRC, allow_user_set))
485 evsel__do_check_stype(evsel, PERF_SAMPLE_WEIGHT_TYPE, "WEIGHT", PERF_OUTPUT_WEIGHT, allow_user_set))
489 !(evsel->core.attr.sample_type & (PERF_SAMPLE_IP|PERF_SAMPLE_ADDR))) {
501 !(evsel->core.attr.sample_type & (PERF_SAMPLE_IP|PERF_SAMPLE_ADDR))) {
517 evsel__check_stype(evsel, PERF_SAMPLE_TID, "TID", PERF_OUTPUT_TID|PERF_OUTPUT_PID))
521 evsel__check_stype(evsel, PERF_SAMPLE_TIME, "TIME", PERF_OUTPUT_TIME))
525 evsel__do_check_stype(evsel, PERF_SAMPLE_CPU, "CPU", PERF_OUTPUT_CPU, allow_user_set))
529 evsel__do_check_stype(evsel, PERF_SAMPLE_REGS_INTR, "IREGS", PERF_OUTPUT_IREGS, allow_user_set))
533 evsel__check_stype(evsel, PERF_SAMPLE_REGS_USER, "UREGS", PERF_OUTPUT_UREGS))
537 evsel__do_check_stype(evsel, PERF_SAMPLE_PHYS_ADDR, "PHYS_ADDR", PERF_OUTPUT_PHYS_ADDR, allow_user_set))
541 evsel__check_stype(evsel, PERF_SAMPLE_DATA_PAGE_SIZE, "DATA_PAGE_SIZE", PERF_OUTPUT_DATA_PAGE_SIZE))
545 evsel__check_stype(evsel, PERF_SAMPLE_CODE_PAGE_SIZE, "CODE_PAGE_SIZE", PERF_OUTPUT_CODE_PAGE_SIZE))
549 evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT_STRUCT, "WEIGHT_STRUCT", PERF_OUTPUT_INS_LAT))
553 evsel__check_stype(evsel, PERF_SAMPLE_CGROUP, "CGROUP", PERF_OUTPUT_CGROUP)) {
559 evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT_STRUCT, "WEIGHT_STRUCT", PERF_OUTPUT_RETIRE_LAT))
589 static struct evsel *find_first_output_type(struct evlist *evlist,
592 struct evsel *evsel;
594 evlist__for_each_entry(evlist, evsel) {
595 if (evsel__is_dummy_event(evsel))
597 if (output_type(evsel->core.attr.type) == (int)type)
598 return evsel;
611 struct evsel *evsel;
614 evsel = find_first_output_type(session->evlist, j);
620 if (!evsel && output[j].user_set && !output[j].wildcard_set &&
628 if (evsel && output[j].fields &&
629 evsel__check_attr(evsel, session))
632 if (evsel == NULL)
639 set_print_ip_opts(&evsel->core.attr);
647 evlist__for_each_entry(session->evlist, evsel) {
649 if (evsel__has_callchain(evsel)) {
666 evlist__for_each_entry(session->evlist, evsel) {
667 if (evsel->core.attr.type != j)
670 if (evsel__has_callchain(evsel)) {
675 set_print_ip_opts(&evsel->core.attr);
776 struct evsel *evsel,
779 struct perf_event_attr *attr = &evsel->core.attr;
797 else if (PRINT_FIELD(IP) && evsel__has_callchain(evsel) && symbol_conf.use_callchain)
1409 struct evsel *evsel,
1415 struct perf_event_attr *attr = &evsel->core.attr;
1439 struct evsel *evsel,
1445 struct perf_event_attr *attr = &evsel->core.attr;
1460 name = resolve_branch_sym(sample, evsel, thread, al, addr_al, &ip);
1541 struct evsel *evsel,
1547 struct perf_event_attr *attr = &evsel->core.attr;
1553 printed += perf_sample__fprintf_callindent(sample, evsel, thread, al, addr_al, fp);
1562 if (thread__resolve_callchain(al->thread, cursor, evsel,
1582 ((evsel->core.attr.sample_type & PERF_SAMPLE_ADDR) &&
1961 struct evsel *evsel, FILE *fp)
1963 switch (evsel->core.attr.config) {
1991 struct evsel *evsel;
1994 evlist__for_each_entry(evlist, evsel) {
1995 int len = strlen(evsel__name(evsel));
2023 struct evsel *evsel;
2036 perf_sample__fprintf_start(NULL, mctx->sample, mctx->thread, mctx->evsel,
2051 perf_sample__fprintf_start(NULL, mctx->sample, mctx->thread, mctx->evsel,
2058 struct evsel *evsel,
2062 struct evsel *leader = evsel__leader(evsel);
2069 .evsel = evsel,
2074 struct evsel *ev2;
2077 if (!evsel->stats)
2081 val = sample->period * evsel->scale;
2082 evsel_script(evsel)->val = val;
2096 struct evsel *evsel,
2115 const char *name = resolve_branch_sym(sample, evsel, thread, al, addr_al,
2138 struct perf_sample *sample, struct evsel *evsel,
2144 struct perf_event_attr *attr = &evsel->core.attr;
2146 struct evsel_script *es = evsel->priv;
2156 perf_sample__fprintf_start(script, sample, thread, evsel,
2163 const char *evname = evsel__name(evsel);
2175 perf_sample__fprintf_bts(sample, evsel, thread, al, addr_al, machine, fp);
2180 event_format__fprintf(evsel->tp_format, sample->cpu,
2185 perf_sample__fprintf_synth(sample, evsel, fp);
2221 if (thread__resolve_callchain(al->thread, cursor, evsel,
2244 if (evsel__is_bpf_output(evsel) && PRINT_FIELD(BPF_OUTPUT))
2268 perf_sample__fprint_metric(script, thread, evsel, sample, fp);
2276 static void __process_stat(struct evsel *counter, u64 tstamp)
2307 static void process_stat(struct evsel *counter, u64 tstamp)
2351 struct evsel *evsel,
2363 ret = dlfilter__filter_event_early(dlfilter, event, sample, evsel, machine, &al, &addr_al);
2399 if (!show_event(sample, evsel, al.thread, &al, &addr_al))
2402 if (evswitch__discard(&scr->evswitch, evsel))
2405 ret = dlfilter__filter_event(dlfilter, event, sample, evsel, machine, &al, &addr_al);
2415 if ((evsel->core.attr.sample_type & PERF_SAMPLE_ADDR) &&
2416 sample_addr_correlates_sym(&evsel->core.attr)) {
2421 scripting_ops->process_event(event, sample, evsel, &al, addr_al_ptr);
2423 process_event(scr, sample, evsel, &al, &addr_al, machine);
2440 struct evsel *evsel, *pos;
2449 evsel = evlist__last(*pevlist);
2451 if (!evsel->priv) {
2453 evsel->priv = evsel_script__new(evsel, scr->session->data);
2454 if (!evsel->priv)
2458 evsel->priv = &es_stdout;
2462 if (evsel->core.attr.type >= PERF_TYPE_MAX &&
2463 evsel->core.attr.type != PERF_TYPE_SYNTH)
2467 if (pos->core.attr.type == evsel->core.attr.type && pos != evsel)
2471 if (evsel->core.attr.sample_type) {
2472 err = evsel__check_attr(evsel, scr->session);
2490 int type = output_type(evsel->core.attr.type);
2497 set_print_ip_opts(&evsel->core.attr);
2509 struct evsel *evsel = evlist__id2evsel(session->evlist, sample->id);
2512 if (evsel && !evsel->core.attr.sample_id_all) {
2525 if (evsel) {
2526 perf_sample__fprintf_start(script, sample, thread, evsel,
2724 struct evsel *evsel;
2726 evlist__for_each_entry(evlist, evsel) {
2727 if (!evsel->priv)
2729 evsel_script__delete(evsel->priv);
2730 evsel->priv = NULL;
2736 struct evsel *evsel;
2738 evlist__for_each_entry(script->session->evlist, evsel) {
2746 if (evsel->priv != NULL)
2749 evsel->priv = evsel_script__new(evsel, script->session->data);
2750 if (evsel->priv == NULL)
2763 struct evsel *evsel;
2770 evlist__for_each_entry(script->session->evlist, evsel)
2771 evsel->priv = &es_stdout;
2778 struct evsel *evsel;
2780 evlist__for_each_entry(script->session->evlist, evsel) {
2781 struct evsel_script *es = evsel->priv;
2785 evsel->priv = NULL;
3421 struct evsel *pos;
3651 struct evsel *counter;