Lines Matching refs:evsel

20 #include "util/evsel.h"
339 static inline struct evsel_script *evsel_script(struct evsel *evsel)
341 return (struct evsel_script *)evsel->priv;
344 static struct evsel_script *evsel_script__new(struct evsel *evsel, struct perf_data *data)
349 if (asprintf(&es->filename, "%s.%s.dump", data->file.path, evsel__name(evsel)) < 0)
420 static int evsel__do_check_stype(struct evsel *evsel, u64 sample_type, const char *sample_msg,
423 struct perf_event_attr *attr = &evsel->core.attr;
433 evname = evsel__name(evsel);
442 evname = evsel__name(evsel);
450 static int evsel__check_stype(struct evsel *evsel, u64 sample_type, const char *sample_msg,
453 return evsel__do_check_stype(evsel, sample_type, sample_msg, field, false);
456 static int evsel__check_attr(struct evsel *evsel, struct perf_session *session)
458 struct perf_event_attr *attr = &evsel->core.attr;
461 if (evsel__is_dummy_event(evsel))
475 if (evsel__check_stype(evsel, PERF_SAMPLE_IP, "IP", PERF_OUTPUT_IP))
480 evsel__do_check_stype(evsel, PERF_SAMPLE_ADDR, "ADDR", PERF_OUTPUT_ADDR, allow_user_set))
484 evsel__do_check_stype(evsel, PERF_SAMPLE_DATA_SRC, "DATA_SRC", PERF_OUTPUT_DATA_SRC, allow_user_set))
488 evsel__do_check_stype(evsel, PERF_SAMPLE_WEIGHT_TYPE, "WEIGHT", PERF_OUTPUT_WEIGHT, allow_user_set))
492 !(evsel->core.attr.sample_type & (PERF_SAMPLE_IP|PERF_SAMPLE_ADDR))) {
504 !(evsel->core.attr.sample_type & (PERF_SAMPLE_IP|PERF_SAMPLE_ADDR))) {
520 evsel__check_stype(evsel, PERF_SAMPLE_TID, "TID", PERF_OUTPUT_TID|PERF_OUTPUT_PID))
524 evsel__check_stype(evsel, PERF_SAMPLE_TIME, "TIME", PERF_OUTPUT_TIME))
528 evsel__do_check_stype(evsel, PERF_SAMPLE_CPU, "CPU", PERF_OUTPUT_CPU, allow_user_set))
532 evsel__do_check_stype(evsel, PERF_SAMPLE_REGS_INTR, "IREGS", PERF_OUTPUT_IREGS, allow_user_set))
536 evsel__check_stype(evsel, PERF_SAMPLE_REGS_USER, "UREGS", PERF_OUTPUT_UREGS))
540 evsel__do_check_stype(evsel, PERF_SAMPLE_PHYS_ADDR, "PHYS_ADDR", PERF_OUTPUT_PHYS_ADDR, allow_user_set))
544 evsel__check_stype(evsel, PERF_SAMPLE_DATA_PAGE_SIZE, "DATA_PAGE_SIZE", PERF_OUTPUT_DATA_PAGE_SIZE))
548 evsel__check_stype(evsel, PERF_SAMPLE_CODE_PAGE_SIZE, "CODE_PAGE_SIZE", PERF_OUTPUT_CODE_PAGE_SIZE))
552 evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT_STRUCT, "WEIGHT_STRUCT", PERF_OUTPUT_INS_LAT))
556 evsel__check_stype(evsel, PERF_SAMPLE_CGROUP, "CGROUP", PERF_OUTPUT_CGROUP)) {
562 evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT_STRUCT, "WEIGHT_STRUCT", PERF_OUTPUT_RETIRE_LAT))
592 static struct evsel *find_first_output_type(struct evlist *evlist,
595 struct evsel *evsel;
597 evlist__for_each_entry(evlist, evsel) {
598 if (evsel__is_dummy_event(evsel))
600 if (output_type(evsel->core.attr.type) == (int)type)
601 return evsel;
614 struct evsel *evsel;
617 evsel = find_first_output_type(session->evlist, j);
623 if (!evsel && output[j].user_set && !output[j].wildcard_set &&
631 if (evsel && output[j].fields &&
632 evsel__check_attr(evsel, session))
635 if (evsel == NULL)
642 set_print_ip_opts(&evsel->core.attr);
650 evlist__for_each_entry(session->evlist, evsel) {
652 if (evsel__has_callchain(evsel)) {
669 evlist__for_each_entry(session->evlist, evsel) {
670 if (evsel->core.attr.type != j)
673 if (evsel__has_callchain(evsel)) {
678 set_print_ip_opts(&evsel->core.attr);
779 struct evsel *evsel,
782 struct perf_event_attr *attr = &evsel->core.attr;
800 else if (PRINT_FIELD(IP) && evsel__has_callchain(evsel) && symbol_conf.use_callchain)
1424 struct evsel *evsel,
1430 struct perf_event_attr *attr = &evsel->core.attr;
1454 struct evsel *evsel,
1460 struct perf_event_attr *attr = &evsel->core.attr;
1475 name = resolve_branch_sym(sample, evsel, thread, al, addr_al, &ip);
1557 struct evsel *evsel,
1563 struct perf_event_attr *attr = &evsel->core.attr;
1569 printed += perf_sample__fprintf_callindent(sample, evsel, thread, al, addr_al, fp);
1578 if (thread__resolve_callchain(al->thread, cursor, evsel,
1598 ((evsel->core.attr.sample_type & PERF_SAMPLE_ADDR) &&
1977 struct evsel *evsel, FILE *fp)
1979 switch (evsel->core.attr.config) {
2007 struct evsel *evsel;
2010 evlist__for_each_entry(evlist, evsel) {
2011 int len = strlen(evsel__name(evsel));
2039 struct evsel *evsel;
2052 perf_sample__fprintf_start(NULL, mctx->sample, mctx->thread, mctx->evsel,
2067 perf_sample__fprintf_start(NULL, mctx->sample, mctx->thread, mctx->evsel,
2074 struct evsel *evsel,
2078 struct evsel *leader = evsel__leader(evsel);
2085 .evsel = evsel,
2090 struct evsel *ev2;
2093 if (!evsel->stats)
2097 val = sample->period * evsel->scale;
2098 evsel_script(evsel)->val = val;
2112 struct evsel *evsel,
2131 const char *name = resolve_branch_sym(sample, evsel, thread, al, addr_al,
2154 struct perf_sample *sample, struct evsel *evsel,
2160 struct perf_event_attr *attr = &evsel->core.attr;
2162 struct evsel_script *es = evsel->priv;
2172 perf_sample__fprintf_start(script, sample, thread, evsel,
2179 const char *evname = evsel__name(evsel);
2191 perf_sample__fprintf_bts(sample, evsel, thread, al, addr_al, machine, fp);
2196 event_format__fprintf(evsel->tp_format, sample->cpu,
2201 perf_sample__fprintf_synth(sample, evsel, fp);
2237 if (thread__resolve_callchain(al->thread, cursor, evsel,
2260 if (evsel__is_bpf_output(evsel) && PRINT_FIELD(BPF_OUTPUT))
2284 perf_sample__fprint_metric(script, thread, evsel, sample, fp);
2292 static void __process_stat(struct evsel *counter, u64 tstamp)
2323 static void process_stat(struct evsel *counter, u64 tstamp)
2367 struct evsel *evsel,
2379 ret = dlfilter__filter_event_early(dlfilter, event, sample, evsel, machine, &al, &addr_al);
2415 if (!show_event(sample, evsel, al.thread, &al, &addr_al))
2418 if (evswitch__discard(&scr->evswitch, evsel))
2421 ret = dlfilter__filter_event(dlfilter, event, sample, evsel, machine, &al, &addr_al);
2431 if ((evsel->core.attr.sample_type & PERF_SAMPLE_ADDR) &&
2432 sample_addr_correlates_sym(&evsel->core.attr)) {
2437 scripting_ops->process_event(event, sample, evsel, &al, addr_al_ptr);
2439 process_event(scr, sample, evsel, &al, &addr_al, machine);
2456 struct evsel *evsel, *pos;
2465 evsel = evlist__last(*pevlist);
2467 if (!evsel->priv) {
2469 evsel->priv = evsel_script__new(evsel, scr->session->data);
2470 if (!evsel->priv)
2474 evsel->priv = &es_stdout;
2478 if (evsel->core.attr.type >= PERF_TYPE_MAX &&
2479 evsel->core.attr.type != PERF_TYPE_SYNTH)
2483 if (pos->core.attr.type == evsel->core.attr.type && pos != evsel)
2487 if (evsel->core.attr.sample_type) {
2488 err = evsel__check_attr(evsel, scr->session);
2506 int type = output_type(evsel->core.attr.type);
2513 set_print_ip_opts(&evsel->core.attr);
2525 struct evsel *evsel = evlist__id2evsel(session->evlist, sample->id);
2528 if (evsel && !evsel->core.attr.sample_id_all) {
2541 if (evsel) {
2542 perf_sample__fprintf_start(script, sample, thread, evsel,
2740 struct evsel *evsel;
2742 evlist__for_each_entry(evlist, evsel) {
2743 if (!evsel->priv)
2745 evsel_script__delete(evsel->priv);
2746 evsel->priv = NULL;
2752 struct evsel *evsel;
2754 evlist__for_each_entry(script->session->evlist, evsel) {
2762 if (evsel->priv != NULL)
2765 evsel->priv = evsel_script__new(evsel, script->session->data);
2766 if (evsel->priv == NULL)
2779 struct evsel *evsel;
2786 evlist__for_each_entry(script->session->evlist, evsel)
2787 evsel->priv = &es_stdout;
2794 struct evsel *evsel;
2796 evlist__for_each_entry(script->session->evlist, evsel) {
2797 struct evsel_script *es = evsel->priv;
2801 evsel->priv = NULL;
3444 struct evsel *pos;
3674 struct evsel *counter;