pmu-events.c (660842e468dcefb5d1d4fb40ed3abe4d1388dff7) pmu-events.c (1ba3752aec30c04bfb7c82b44332ff98294ec0b8)
1// SPDX-License-Identifier: GPL-2.0
2#include "math.h"
3#include "parse-events.h"
4#include "pmu.h"
5#include "tests.h"
6#include <errno.h>
7#include <stdio.h>
8#include <linux/kernel.h>

--- 410 unchanged lines hidden (view full) ---

419 pmu_name, alias->pmu_name, test_event->event.pmu);
420 return -1;
421 }
422
423 return 0;
424}
425
426static int test__pmu_event_table_core_callback(const struct pmu_event *pe,
1// SPDX-License-Identifier: GPL-2.0
2#include "math.h"
3#include "parse-events.h"
4#include "pmu.h"
5#include "tests.h"
6#include <errno.h>
7#include <stdio.h>
8#include <linux/kernel.h>

--- 410 unchanged lines hidden (view full) ---

419 pmu_name, alias->pmu_name, test_event->event.pmu);
420 return -1;
421 }
422
423 return 0;
424}
425
426static int test__pmu_event_table_core_callback(const struct pmu_event *pe,
427 const struct pmu_event *table __maybe_unused,
427 const struct pmu_events_table *table __maybe_unused,
428 void *data)
429{
430 int *map_events = data;
431 struct perf_pmu_test_event const **test_event_table;
432 bool found = false;
433
434 if (!pe->name)
435 return 0;

--- 20 unchanged lines hidden (view full) ---

456 if (!found) {
457 pr_err("testing event table: could not find event %s\n", pe->name);
458 return -1;
459 }
460 return 0;
461}
462
463static int test__pmu_event_table_sys_callback(const struct pmu_event *pe,
428 void *data)
429{
430 int *map_events = data;
431 struct perf_pmu_test_event const **test_event_table;
432 bool found = false;
433
434 if (!pe->name)
435 return 0;

--- 20 unchanged lines hidden (view full) ---

456 if (!found) {
457 pr_err("testing event table: could not find event %s\n", pe->name);
458 return -1;
459 }
460 return 0;
461}
462
463static int test__pmu_event_table_sys_callback(const struct pmu_event *pe,
464 const struct pmu_event *table __maybe_unused,
464 const struct pmu_events_table *table __maybe_unused,
465 void *data)
466{
467 int *map_events = data;
468 struct perf_pmu_test_event const **test_event_table;
469 bool found = false;
470
471 test_event_table = &sys_events[0];
472

--- 17 unchanged lines hidden (view full) ---

490 }
491 return TEST_OK;
492}
493
494/* Verify generated events from pmu-events.c are as expected */
495static int test__pmu_event_table(struct test_suite *test __maybe_unused,
496 int subtest __maybe_unused)
497{
465 void *data)
466{
467 int *map_events = data;
468 struct perf_pmu_test_event const **test_event_table;
469 bool found = false;
470
471 test_event_table = &sys_events[0];
472

--- 17 unchanged lines hidden (view full) ---

490 }
491 return TEST_OK;
492}
493
494/* Verify generated events from pmu-events.c are as expected */
495static int test__pmu_event_table(struct test_suite *test __maybe_unused,
496 int subtest __maybe_unused)
497{
498 const struct pmu_event *sys_event_table = find_sys_events_table("pme_test_soc_sys");
499 const struct pmu_event *table = find_core_events_table("testarch", "testcpu");
498 const struct pmu_events_table *sys_event_table = find_sys_events_table("pme_test_soc_sys");
499 const struct pmu_events_table *table = find_core_events_table("testarch", "testcpu");
500 int map_events = 0, expected_events, err;
501
502 /* ignore 3x sentinels */
503 expected_events = ARRAY_SIZE(core_events) +
504 ARRAY_SIZE(uncore_events) +
505 ARRAY_SIZE(sys_events) - 3;
506
507 if (!table || !sys_event_table)

--- 31 unchanged lines hidden (view full) ---

539
540/* Verify aliases are as expected */
541static int __test_core_pmu_event_aliases(char *pmu_name, int *count)
542{
543 struct perf_pmu_test_event const **test_event_table;
544 struct perf_pmu *pmu;
545 LIST_HEAD(aliases);
546 int res = 0;
500 int map_events = 0, expected_events, err;
501
502 /* ignore 3x sentinels */
503 expected_events = ARRAY_SIZE(core_events) +
504 ARRAY_SIZE(uncore_events) +
505 ARRAY_SIZE(sys_events) - 3;
506
507 if (!table || !sys_event_table)

--- 31 unchanged lines hidden (view full) ---

539
540/* Verify aliases are as expected */
541static int __test_core_pmu_event_aliases(char *pmu_name, int *count)
542{
543 struct perf_pmu_test_event const **test_event_table;
544 struct perf_pmu *pmu;
545 LIST_HEAD(aliases);
546 int res = 0;
547 const struct pmu_event *table = find_core_events_table("testarch", "testcpu");
547 const struct pmu_events_table *table = find_core_events_table("testarch", "testcpu");
548 struct perf_pmu_alias *a, *tmp;
549
550 if (!table)
551 return -1;
552
553 test_event_table = &core_events[0];
554
555 pmu = zalloc(sizeof(*pmu));

--- 36 unchanged lines hidden (view full) ---

592
593static int __test_uncore_pmu_event_aliases(struct perf_pmu_test_pmu *test_pmu)
594{
595 int alias_count = 0, to_match_count = 0, matched_count = 0;
596 struct perf_pmu_test_event const **table;
597 struct perf_pmu *pmu = &test_pmu->pmu;
598 const char *pmu_name = pmu->name;
599 struct perf_pmu_alias *a, *tmp, *alias;
548 struct perf_pmu_alias *a, *tmp;
549
550 if (!table)
551 return -1;
552
553 test_event_table = &core_events[0];
554
555 pmu = zalloc(sizeof(*pmu));

--- 36 unchanged lines hidden (view full) ---

592
593static int __test_uncore_pmu_event_aliases(struct perf_pmu_test_pmu *test_pmu)
594{
595 int alias_count = 0, to_match_count = 0, matched_count = 0;
596 struct perf_pmu_test_event const **table;
597 struct perf_pmu *pmu = &test_pmu->pmu;
598 const char *pmu_name = pmu->name;
599 struct perf_pmu_alias *a, *tmp, *alias;
600 const struct pmu_event *events_table;
600 const struct pmu_events_table *events_table;
601 LIST_HEAD(aliases);
602 int res = 0;
603
604 events_table = find_core_events_table("testarch", "testcpu");
605 if (!events_table)
606 return -1;
607 pmu_add_cpu_aliases_table(&aliases, pmu, events_table);
608 pmu_add_sys_aliases(&aliases, pmu);

--- 225 unchanged lines hidden (view full) ---

834 return ret;
835}
836
837struct metric {
838 struct list_head list;
839 struct metric_ref metric_ref;
840};
841
601 LIST_HEAD(aliases);
602 int res = 0;
603
604 events_table = find_core_events_table("testarch", "testcpu");
605 if (!events_table)
606 return -1;
607 pmu_add_cpu_aliases_table(&aliases, pmu, events_table);
608 pmu_add_sys_aliases(&aliases, pmu);

--- 225 unchanged lines hidden (view full) ---

834 return ret;
835}
836
837struct metric {
838 struct list_head list;
839 struct metric_ref metric_ref;
840};
841
842static int test__parsing_callback(const struct pmu_event *pe, const struct pmu_event *table,
842static int test__parsing_callback(const struct pmu_event *pe, const struct pmu_events_table *table,
843 void *data)
844{
845 int *failures = data;
846 int k;
847 struct evlist *evlist;
848 struct perf_cpu_map *cpus;
849 struct runtime_stat st;
850 struct evsel *evsel;

--- 160 unchanged lines hidden (view full) ---

1011 }
1012
1013out:
1014 expr__ctx_free(ctx);
1015 return ret;
1016}
1017
1018static int test__parsing_fake_callback(const struct pmu_event *pe,
843 void *data)
844{
845 int *failures = data;
846 int k;
847 struct evlist *evlist;
848 struct perf_cpu_map *cpus;
849 struct runtime_stat st;
850 struct evsel *evsel;

--- 160 unchanged lines hidden (view full) ---

1011 }
1012
1013out:
1014 expr__ctx_free(ctx);
1015 return ret;
1016}
1017
1018static int test__parsing_fake_callback(const struct pmu_event *pe,
1019 const struct pmu_event *table __maybe_unused,
1019 const struct pmu_events_table *table __maybe_unused,
1020 void *data __maybe_unused)
1021{
1022 if (!pe->metric_expr)
1023 return 0;
1024
1025 return metric_parse_fake(pe->metric_expr);
1026}
1027

--- 36 unchanged lines hidden ---
1020 void *data __maybe_unused)
1021{
1022 if (!pe->metric_expr)
1023 return 0;
1024
1025 return metric_parse_fake(pe->metric_expr);
1026}
1027

--- 36 unchanged lines hidden ---