52 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * Copyright 2014, Michael Ellerman, IBM Corp.4 */5 6#include <stdio.h>7#include <stdlib.h>8 9#include "event.h"10#include "utils.h"11 12#define MALLOC_SIZE (0x10000 * 10) /* Ought to be enough .. */13 14/*15 * Tests that the L3 bank handling is correct. We fixed it in commit e9aaac1.16 */17static int l3_bank_test(void)18{19 struct event event;20 char *p;21 int i;22 23 // The L3 bank logic is only used on Power8 or later24 SKIP_IF(!have_hwcap2(PPC_FEATURE2_ARCH_2_07));25 26 p = malloc(MALLOC_SIZE);27 FAIL_IF(!p);28 29 event_init(&event, 0x84918F);30 31 FAIL_IF(event_open(&event));32 33 for (i = 0; i < MALLOC_SIZE; i += 0x10000)34 p[i] = i;35 36 event_read(&event);37 event_report(&event);38 39 FAIL_IF(event.result.running == 0);40 FAIL_IF(event.result.enabled == 0);41 42 event_close(&event);43 free(p);44 45 return 0;46}47 48int main(void)49{50 return test_harness(l3_bank_test, "l3_bank_test");51}52