mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
903 B
51 lines
903 B
// SPDX-License-Identifier: GPL-2.0-only |
|
/* |
|
* Copyright 2014, Michael Ellerman, IBM Corp. |
|
*/ |
|
|
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
|
|
#include "event.h" |
|
#include "utils.h" |
|
|
|
#define MALLOC_SIZE (0x10000 * 10) /* Ought to be enough .. */ |
|
|
|
/* |
|
* Tests that the L3 bank handling is correct. We fixed it in commit e9aaac1. |
|
*/ |
|
static int l3_bank_test(void) |
|
{ |
|
struct event event; |
|
char *p; |
|
int i; |
|
|
|
// The L3 bank logic is only used on Power8 or later |
|
SKIP_IF(!have_hwcap2(PPC_FEATURE2_ARCH_2_07)); |
|
|
|
p = malloc(MALLOC_SIZE); |
|
FAIL_IF(!p); |
|
|
|
event_init(&event, 0x84918F); |
|
|
|
FAIL_IF(event_open(&event)); |
|
|
|
for (i = 0; i < MALLOC_SIZE; i += 0x10000) |
|
p[i] = i; |
|
|
|
event_read(&event); |
|
event_report(&event); |
|
|
|
FAIL_IF(event.result.running == 0); |
|
FAIL_IF(event.result.enabled == 0); |
|
|
|
event_close(&event); |
|
free(p); |
|
|
|
return 0; |
|
} |
|
|
|
int main(void) |
|
{ |
|
return test_harness(l3_bank_test, "l3_bank_test"); |
|
}
|
|
|