Skip to content

Instantly share code, notes, and snippets.

@bradley-evans
Created February 3, 2020 17:58
Show Gist options
  • Save bradley-evans/88ad9e2b3a18d7471184623486189cab to your computer and use it in GitHub Desktop.
Save bradley-evans/88ad9e2b3a18d7471184623486189cab to your computer and use it in GitHub Desktop.
#include <stdio.h>
#define CACHE_MISS 0x100
int loop(int n, int a) {
int b = 0;
for(int i=0; i<n; i++) {
b = a + b;
}
return b;
}
int main() {
int a = 1;
int n = 200;
int count = 0;
// initialize counters here
// should start tracking cache misses with 0x100
__asm__ volatile("csrw mhpmevent3, %0"
:
: "r"(CACHE_MISS)
);
loop(n, a);
// read counters here
__asm__ volatile("csrr %0, mhpmcounter3"
: "=r"(count)
);
printf("Cache misses: %d\n", count);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment