Lines Matching defs:evsel

15 #include "evsel.h"
347 static struct evsel *
355 struct evsel *evsel;
368 evsel = evsel__new_idx(attr, *idx);
369 if (!evsel) {
375 evsel->core.cpus = cpus;
376 evsel->core.own_cpus = perf_cpu_map__get(cpus);
377 evsel->core.system_wide = pmu ? pmu->is_uncore : false;
378 evsel->auto_merge_stats = auto_merge_stats;
381 evsel->name = strdup(name);
384 list_splice(config_terms, &evsel->config_terms);
387 list_add_tail(&evsel->core.node, list);
389 return evsel;
392 struct evsel *parse_events__add_event(int idx, struct perf_event_attr *attr,
410 struct evsel *evsel;
416 evsel = __add_event(list, idx, &attr, true, NULL, NULL, NULL, false,
418 if (!evsel)
420 evsel->tool_event = tool_event;
422 evsel->unit = "ns";
564 struct evsel *evsel = evsel__newtp_idx(sys_name, evt_name, (*idx)++);
566 if (IS_ERR(evsel)) {
567 tracepoint_error(err, PTR_ERR(evsel), sys_name, evt_name);
568 return PTR_ERR(evsel);
576 list_splice(&config_terms, &evsel->config_terms);
579 list_add_tail(&evsel->core.node, list);
690 struct evsel *pos;
709 struct evsel *evsel, *tmp;
713 list_for_each_entry_safe(evsel, tmp, &new_evsels, core.node) {
714 list_del_init(&evsel->core.node);
715 evsel__delete(evsel);
1446 struct evsel *evsel;
1487 evsel = __add_event(list, &parse_state->idx, &attr, true, NULL,
1489 if (evsel) {
1490 evsel->pmu_name = name ? strdup(name) : NULL;
1491 evsel->use_uncore_alias = use_uncore_alias;
1543 evsel = __add_event(list, &parse_state->idx, &attr, true,
1546 if (!evsel)
1549 evsel->pmu_name = name ? strdup(name) : NULL;
1550 evsel->use_uncore_alias = use_uncore_alias;
1551 evsel->percore = config_term_percore(&evsel->config_terms);
1556 evsel->unit = info.unit;
1557 evsel->scale = info.scale;
1558 evsel->per_pkg = info.per_pkg;
1559 evsel->snapshot = info.snapshot;
1560 evsel->metric_expr = info.metric_expr;
1561 evsel->metric_name = info.metric_name;
1654 struct evsel *evsel, *leader;
1659 leader = list_first_entry(list, struct evsel, core.node);
1660 evsel = list_last_entry(list, struct evsel, core.node);
1661 total_members = evsel->idx - leader->idx + 1;
1672 __evlist__for_each_entry(list, evsel) {
1675 if (!evsel->use_uncore_alias)
1679 if (!is_same_uncore_block(leader->pmu_name, evsel->pmu_name))
1689 if ((leader != evsel) &&
1690 !strcmp(leader->pmu_name, evsel->pmu_name)) {
1696 leaders[nr_pmu++] = (uintptr_t) evsel;
1718 __evlist__for_each_entry(list, evsel) {
1721 evsel->leader = (struct evsel *) leaders[i++];
1726 evsel = (struct evsel *) leaders[i];
1727 evsel->core.nr_members = total_members / nr_pmu;
1728 evsel->group_name = name ? strdup(name) : NULL;
1744 struct evsel *leader;
1755 leader = list_entry(list->next, struct evsel, core.node);
1789 struct evsel *evsel)
1791 int eu = evsel ? evsel->core.attr.exclude_user : 0;
1792 int ek = evsel ? evsel->core.attr.exclude_kernel : 0;
1793 int eh = evsel ? evsel->core.attr.exclude_hv : 0;
1794 int eH = evsel ? evsel->core.attr.exclude_host : 0;
1795 int eG = evsel ? evsel->core.attr.exclude_guest : 0;
1796 int eI = evsel ? evsel->core.attr.exclude_idle : 0;
1797 int precise = evsel ? evsel->core.attr.precise_ip : 0;
1800 int pinned = evsel ? evsel->core.attr.pinned : 0;
1801 int exclusive = evsel ? evsel->core.attr.exclusive : 0;
1804 int exclude_GH = evsel ? evsel->exclude_GH : 0;
1908 struct evsel *evsel;
1920 __evlist__for_each_entry(list, evsel) {
1921 if (add && get_event_modifier(&mod, str, evsel))
1924 evsel->core.attr.exclude_user = mod.eu;
1925 evsel->core.attr.exclude_kernel = mod.ek;
1926 evsel->core.attr.exclude_hv = mod.eh;
1927 evsel->core.attr.precise_ip = mod.precise;
1928 evsel->core.attr.exclude_host = mod.eH;
1929 evsel->core.attr.exclude_guest = mod.eG;
1930 evsel->core.attr.exclude_idle = mod.eI;
1931 evsel->exclude_GH = mod.exclude_GH;
1932 evsel->sample_read = mod.sample_read;
1933 evsel->precise_max = mod.precise_max;
1934 evsel->weak_group = mod.weak;
1936 if (evsel__is_group_leader(evsel)) {
1937 evsel->core.attr.pinned = mod.pinned;
1938 evsel->core.attr.exclusive = mod.exclusive;
1947 struct evsel *evsel;
1949 __evlist__for_each_entry(list, evsel) {
1950 if (!evsel->name)
1951 evsel->name = strdup(name);
2171 struct evsel *last;
2316 int (*func)(struct evsel *evsel,
2320 struct evsel *last = NULL;
2341 last = list_entry(last->core.node.prev, struct evsel, core.node);
2347 static int set_filter(struct evsel *evsel, const void *arg)
2354 if (evsel == NULL) {
2360 if (evsel->core.attr.type == PERF_TYPE_TRACEPOINT) {
2361 if (evsel__append_tp_filter(evsel, str) < 0) {
2371 if (pmu->type == evsel->core.attr.type) {
2386 if (evsel__append_addr_filter(evsel, str) < 0) {
2404 static int add_exclude_perf_filter(struct evsel *evsel,
2409 if (evsel == NULL || evsel->core.attr.type != PERF_TYPE_TRACEPOINT) {
2417 if (evsel__append_tp_filter(evsel, new_filter) < 0) {
2596 struct evsel *evsel;
2607 evsel = evsel__new(&attr);
2608 if (evsel) {
2609 open_return = evsel__open(evsel, NULL, tmap);
2620 evsel->core.attr.exclude_kernel = 1;
2621 ret = evsel__open(evsel, NULL, tmap) >= 0;
2623 evsel__delete(evsel);