diff options
Diffstat (limited to 'powerpc/pmu/ebb/close_clears_pmcc_test.c')
-rw-r--r-- | powerpc/pmu/ebb/close_clears_pmcc_test.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/powerpc/pmu/ebb/close_clears_pmcc_test.c b/powerpc/pmu/ebb/close_clears_pmcc_test.c deleted file mode 100644 index 0f0423d..0000000 --- a/powerpc/pmu/ebb/close_clears_pmcc_test.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2014, Michael Ellerman, IBM Corp. - * Licensed under GPLv2. - */ - -#include <stdio.h> -#include <stdlib.h> -#include <setjmp.h> -#include <signal.h> - -#include "ebb.h" - - -/* - * Test that closing the EBB event clears MMCR0_PMCC, preventing further access - * by userspace to the PMU hardware. - */ - -int close_clears_pmcc(void) -{ - struct event event; - - event_init_named(&event, 0x1001e, "cycles"); - event_leader_ebb_init(&event); - - FAIL_IF(event_open(&event)); - - ebb_enable_pmc_counting(1); - setup_ebb_handler(standard_ebb_callee); - ebb_global_enable(); - FAIL_IF(ebb_event_enable(&event)); - - mtspr(SPRN_PMC1, pmc_sample_period(sample_period)); - - while (ebb_state.stats.ebb_count < 1) - FAIL_IF(core_busy_loop()); - - ebb_global_disable(); - event_close(&event); - - FAIL_IF(ebb_state.stats.ebb_count == 0); - - /* The real test is here, do we take a SIGILL when writing PMU regs now - * that we have closed the event. We expect that we will. */ - - FAIL_IF(catch_sigill(write_pmc1)); - - /* We should still be able to read EBB regs though */ - mfspr(SPRN_EBBHR); - mfspr(SPRN_EBBRR); - mfspr(SPRN_BESCR); - - return 0; -} - -int main(void) -{ - return test_harness(close_clears_pmcc, "close_clears_pmcc"); -} |