File Index
Files and directories
Sign in
FILE

group_constraint_pmc56_test.c

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc56_test.c C
 1// SPDX-License-Identifier: GPL-2.0-only
 2/*
 3 * Copyright 2022, Athira Rajeev, IBM Corp.
 4 */
 5
 6#include <stdio.h>
 7#include "../event.h"
 8#include "../sampling_tests/misc.h"
 9
10/*
11 * Testcase for checking constraint checks for
12 * Performance Monitor Counter 5 (PMC5) and also
13 * Performance Monitor Counter 6 (PMC6). Events using
14 * PMC5/PMC6 shouldn't have other fields in event
15 * code like cache bits, thresholding or marked bit.
16 */
17
18static int group_constraint_pmc56(void)
19{
20	struct event event;
21
22	/* Check for platform support for the test */
23	SKIP_IF(platform_check_for_tests());
24
25	/*
26	 * Events using PMC5 and PMC6 with cache bit
27	 * set in event code is expected to fail.
28	 */
29	event_init(&event, 0x2500fa);
30	FAIL_IF(!event_open(&event));
31
32	event_init(&event, 0x2600f4);
33	FAIL_IF(!event_open(&event));
34
35	/*
36	 * PMC5 and PMC6 only supports base events:
37	 * ie 500fa and 600f4. Other combinations
38	 * should fail.
39	 */
40	event_init(&event, 0x501e0);
41	FAIL_IF(!event_open(&event));
42
43	event_init(&event, 0x6001e);
44	FAIL_IF(!event_open(&event));
45
46	event_init(&event, 0x501fa);
47	FAIL_IF(!event_open(&event));
48
49	/*
50	 * Events using PMC5 and PMC6 with random
51	 * sampling bits set in event code should fail
52	 * to schedule.
53	 */
54	event_init(&event, 0x35340500fa);
55	FAIL_IF(!event_open(&event));
56
57	return 0;
58}
59
60int main(void)
61{
62	return test_harness(group_constraint_pmc56, "group_constraint_pmc56");
63}
~/ Read-only file preview.