From d8a20a54b05e2c9adb5198b1439608391450dd0b Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Mon, 8 Aug 2022 19:21:29 +0200 Subject: Added ioctl interface and debuged single access evictions --- src/cachepc.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'src/cachepc.c') diff --git a/src/cachepc.c b/src/cachepc.c index c7e6048..702cfad 100755 --- a/src/cachepc.c +++ b/src/cachepc.c @@ -1,5 +1,11 @@ #include "cachepc.h" +#include +#include +#include +#include +#include + static void cl_insert(cacheline *last_cl, cacheline *new_cl); static void *remove_cache_set(cache_ctx *ctx, void *ptr); static void *remove_cache_group_set(void *ptr); @@ -26,8 +32,8 @@ cachepc_init_counters(void) */ reg_addr = 0xc0010200; - event_no = 0x64;//0x29;//0x64; - event_mask = 0x08; //0x07; //0x08; + event_no = 0x70; + event_mask = 0xFF; event = event_no | (event_mask << 8); event |= (1ULL << 17); /* OS (kernel) events only */ event |= (1ULL << 22); /* enable performance counter */ @@ -36,14 +42,25 @@ cachepc_init_counters(void) asm volatile ("wrmsr" : : "c"(reg_addr), "a"(event), "d"(0x00)); reg_addr = 0xc0010202; - event_no = 0x64; - event_mask = 0xF0; + event_no = 0x71; + event_mask = 0xFF; + event = event_no | (event_mask << 8); + event |= (1ULL << 17); /* OS (kernel) events only */ + event |= (1ULL << 22); /* enable performance counter */ + event |= (1ULL << 40); /* Host events only */ + printk(KERN_WARNING "CachePC: Initialized event %llu\n", event); + asm volatile ("wrmsr" : : "c"(reg_addr), "a"(event), "d"(0x00)); + + reg_addr = 0xc0010204; + event_no = 0x72; + event_mask = 0xFF; event = event_no | (event_mask << 8); event |= (1ULL << 17); /* OS (kernel) events only */ event |= (1ULL << 22); /* enable performance counter */ event |= (1ULL << 40); /* Host events only */ printk(KERN_WARNING "CachePC: Initialized event %llu\n", event); asm volatile ("wrmsr" : : "c"(reg_addr), "a"(event), "d"(0x00)); + } cache_ctx * @@ -149,6 +166,8 @@ cachepc_save_msrmts(cacheline *head) { cacheline *curr_cl; + printk(KERN_WARNING "CachePC: Updating /proc/cachepc\n"); + curr_cl = head; do { if (IS_FIRST(curr_cl->flags)) { -- cgit v1.2.3-71-gd317