• Home
  • Raw
  • Download

Lines Matching +full:event +full:- +full:name

1 // SPDX-License-Identifier: GPL-2.0
3 #include "parse-events.h"
11 #include "../pmu-events/pmu-events.h"
14 #include "util/parse-events.h"
17 struct pmu_event event; member
32 .event = {
33 .name = "bp_l1_btb_correct",
34 .event = "event=0x8a",
38 .alias_str = "event=0x8a",
42 .event = {
43 .name = "bp_l2_btb_correct",
44 .event = "event=0x8b",
48 .alias_str = "event=0x8b",
52 .event = {
53 .name = "segment_reg_loads.any",
54 .event = "umask=0x80,period=200000,event=0x6",
58 .alias_str = "umask=0x80,(null)=0x30d40,event=0x6",
62 .event = {
63 .name = "dispatch_blocked.any",
64 .event = "umask=0x20,period=200000,event=0x9",
65 .desc = "Memory cluster signals to block micro-op dispatch for any reason",
68 .alias_str = "umask=0x20,(null)=0x30d40,event=0x9",
69 .alias_long_desc = "Memory cluster signals to block micro-op dispatch for any reason",
72 .event = {
73 .name = "eist_trans",
74 .event = "umask=0x0,period=200000,event=0x3a",
78 .alias_str = "umask=0,(null)=0x30d40,event=0x3a",
82 .event = {
83 .name = NULL,
90 .event = {
91 .name = "uncore_hisi_ddrc.flux_wcmd",
92 .event = "event=0x2",
98 .alias_str = "event=0x2",
102 .event = {
103 .name = "unc_cbo_xsnp_response.miss_eviction",
104 .event = "umask=0x81,event=0x22",
105 ….desc = "Unit: uncore_cbox A cross-core snoop resulted from L3 Eviction which misses in some proce…
107 .long_desc = "A cross-core snoop resulted from L3 Eviction which misses in some processor core",
110 .alias_str = "umask=0x81,event=0x22",
111 ….alias_long_desc = "A cross-core snoop resulted from L3 Eviction which misses in some processor co…
114 .event = {
115 .name = NULL,
140 for (map = &pmu_events_map[0]; map->cpuid; map++) { in __test_pmu_get_events_map()
141 if (!strcmp(map->cpuid, "testcpu")) in __test_pmu_get_events_map()
150 /* Verify generated events from pmu-events.c is as expected */
159 ARRAY_SIZE(test_uncore_events) - 2; in test_pmu_event_table()
162 return -1; in test_pmu_event_table()
164 for (table = map->table; table->name; table++) { in test_pmu_event_table()
169 if (table->pmu) in test_pmu_event_table()
174 te = &test->event; in test_pmu_event_table()
176 for (; te->name; test++, te = &test->event) { in test_pmu_event_table()
177 if (strcmp(table->name, te->name)) in test_pmu_event_table()
182 if (!is_same(table->desc, te->desc)) { in test_pmu_event_table()
183 pr_debug2("testing event table %s: mismatched desc, %s vs %s\n", in test_pmu_event_table()
184 table->name, table->desc, te->desc); in test_pmu_event_table()
185 return -1; in test_pmu_event_table()
188 if (!is_same(table->topic, te->topic)) { in test_pmu_event_table()
189 pr_debug2("testing event table %s: mismatched topic, %s vs %s\n", in test_pmu_event_table()
190 table->name, table->topic, in test_pmu_event_table()
191 te->topic); in test_pmu_event_table()
192 return -1; in test_pmu_event_table()
195 if (!is_same(table->long_desc, te->long_desc)) { in test_pmu_event_table()
196 pr_debug2("testing event table %s: mismatched long_desc, %s vs %s\n", in test_pmu_event_table()
197 table->name, table->long_desc, in test_pmu_event_table()
198 te->long_desc); in test_pmu_event_table()
199 return -1; in test_pmu_event_table()
202 if (!is_same(table->unit, te->unit)) { in test_pmu_event_table()
203 pr_debug2("testing event table %s: mismatched unit, %s vs %s\n", in test_pmu_event_table()
204 table->name, table->unit, in test_pmu_event_table()
205 te->unit); in test_pmu_event_table()
206 return -1; in test_pmu_event_table()
209 if (!is_same(table->perpkg, te->perpkg)) { in test_pmu_event_table()
210 pr_debug2("testing event table %s: mismatched perpkg, %s vs %s\n", in test_pmu_event_table()
211 table->name, table->perpkg, in test_pmu_event_table()
212 te->perpkg); in test_pmu_event_table()
213 return -1; in test_pmu_event_table()
216 if (!is_same(table->metric_expr, te->metric_expr)) { in test_pmu_event_table()
217 pr_debug2("testing event table %s: mismatched metric_expr, %s vs %s\n", in test_pmu_event_table()
218 table->name, table->metric_expr, in test_pmu_event_table()
219 te->metric_expr); in test_pmu_event_table()
220 return -1; in test_pmu_event_table()
223 if (!is_same(table->metric_name, te->metric_name)) { in test_pmu_event_table()
224 pr_debug2("testing event table %s: mismatched metric_name, %s vs %s\n", in test_pmu_event_table()
225 table->name, table->metric_name, in test_pmu_event_table()
226 te->metric_name); in test_pmu_event_table()
227 return -1; in test_pmu_event_table()
230 if (!is_same(table->deprecated, te->deprecated)) { in test_pmu_event_table()
231 pr_debug2("testing event table %s: mismatched deprecated, %s vs %s\n", in test_pmu_event_table()
232 table->name, table->deprecated, in test_pmu_event_table()
233 te->deprecated); in test_pmu_event_table()
234 return -1; in test_pmu_event_table()
237 pr_debug("testing event table %s: pass\n", table->name); in test_pmu_event_table()
241 pr_err("testing event table: could not find event %s\n", in test_pmu_event_table()
242 table->name); in test_pmu_event_table()
243 return -1; in test_pmu_event_table()
248 pr_err("testing event table: found %d, but expected %d\n", in test_pmu_event_table()
250 return -1; in test_pmu_event_table()
261 if (!strcmp(test_event, alias->name)) in find_alias()
280 return -1; in __test__pmu_event_aliases()
292 return -1; in __test__pmu_event_aliases()
294 pmu->name = pmu_name; in __test__pmu_event_aliases()
298 for (te = &test->event; te->name; test++, te = &test->event) { in __test__pmu_event_aliases()
299 struct perf_pmu_alias *alias = find_alias(te->name, &aliases); in __test__pmu_event_aliases()
303 te->pmu); in __test__pmu_event_aliases()
307 pmu_name, te->name); in __test__pmu_event_aliases()
311 pr_debug2("testing aliases PMU %s: no alias, alias_table->name=%s\n", in __test__pmu_event_aliases()
312 pmu_name, te->name); in __test__pmu_event_aliases()
313 res = -1; in __test__pmu_event_aliases()
317 if (!is_same(alias->desc, te->desc)) { in __test__pmu_event_aliases()
319 pmu_name, alias->desc, te->desc); in __test__pmu_event_aliases()
320 res = -1; in __test__pmu_event_aliases()
324 if (!is_same(alias->long_desc, test->alias_long_desc)) { in __test__pmu_event_aliases()
326 pmu_name, alias->long_desc, in __test__pmu_event_aliases()
327 test->alias_long_desc); in __test__pmu_event_aliases()
328 res = -1; in __test__pmu_event_aliases()
332 if (!is_same(alias->str, test->alias_str)) { in __test__pmu_event_aliases()
334 pmu_name, alias->str, test->alias_str); in __test__pmu_event_aliases()
335 res = -1; in __test__pmu_event_aliases()
339 if (!is_same(alias->topic, te->topic)) { in __test__pmu_event_aliases()
341 pmu_name, alias->topic, te->topic); in __test__pmu_event_aliases()
342 res = -1; in __test__pmu_event_aliases()
347 pr_debug2("testing aliases PMU %s: matched event %s\n", in __test__pmu_event_aliases()
348 pmu_name, alias->name); in __test__pmu_event_aliases()
352 list_del(&a->list); in __test__pmu_event_aliases()
367 if (list_empty(&pmu->format)) { in test_aliases()
368 pr_debug2("skipping testing PMU %s\n", pmu->name); in test_aliases()
372 if (__test__pmu_event_aliases(pmu->name, &count)) { in test_aliases()
373 pr_debug("testing PMU %s aliases: failed\n", pmu->name); in test_aliases()
374 return -1; in test_aliases()
379 pmu->name); in test_aliases()
381 pr_debug("testing PMU %s aliases: pass\n", pmu->name); in test_aliases()
410 return -ENOMEM; in check_parse_id()
422 pr_warning("Parse event failed metric '%s' id '%s' expr '%s'\n", in check_parse_cpu()
423 pe->metric_name, id, pe->metric_expr); in check_parse_cpu()
427 …pr_debug3("Parse event failed, but for an event that may not be supported by this CPU.\nid '%s' me… in check_parse_cpu()
428 id, pe->metric_name, pe->metric_expr); in check_parse_cpu()
455 msg, map->cpuid, map->version, map->type); in expr_failure()
456 pr_debug("On metric %s\n", pe->metric_name); in expr_failure()
457 pr_debug("On expression %s\n", pe->metric_expr); in expr_failure()
473 if (!map->table) in test_parsing()
480 pe = &map->table[j++]; in test_parsing()
481 if (!pe->name && !pe->metric_group && !pe->metric_name) in test_parsing()
483 if (!pe->metric_expr) in test_parsing()
486 if (expr__find_other(pe->metric_expr, NULL, &ctx, 0) in test_parsing()
500 expr__add_id_val(&ctx, strdup(cur->key), k++); in test_parsing()
503 if (check_parse_cpu(cur->key, map == cpus_map, in test_parsing()
508 if (expr__parse(&result, &ctx, pe->metric_expr, 0)) { in test_parsing()
525 { "imx8_ddr0@read\\-cycles@ * 4 * 4", },
526 { "imx8_ddr0@axid\\-read\\,axi_mask\\=0xffff\\,axi_id\\=0x0000@ * 4", },
527 { "(cstate_pkg@c2\\-residency@ / msr@tsc@) * 100", },
528 { "(imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@)", },
536 int ret = -1; in metric_parse_fake()
545 return -1; in metric_parse_fake()
555 expr__add_id_val(&ctx, strdup(cur->key), i++); in metric_parse_fake()
558 if (check_parse_fake(cur->key)) { in metric_parse_fake()
595 if (!map->table) in test_parsing_fake()
599 pe = &map->table[j++]; in test_parsing_fake()
600 if (!pe->name && !pe->metric_group && !pe->metric_name) in test_parsing_fake()
602 if (!pe->metric_expr) in test_parsing_fake()
604 err = metric_parse_fake(pe->metric_expr); in test_parsing_fake()
619 .desc = "PMU event table sanity",
623 .desc = "PMU event map aliases",
627 .desc = "Parsing of PMU event table metrics",
631 .desc = "Parsing of PMU event table metrics with fake PMUs",