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
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.