summaryrefslogtreecommitdiffstats
path: root/test/kvm-eviction.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2023-01-26 04:24:19 +0100
committerLouis Burda <quent.burda@gmail.com>2023-01-26 04:24:19 +0100
commit5e21196a9c7ee8eee921d74f6b5eef2f1980ec97 (patch)
treebaea207295fe1ad257506a8de08c1b64f06fbd4e /test/kvm-eviction.c
parentcb7c6b3d6767335d13892451c141cfb717807712 (diff)
downloadcachepc-5e21196a9c7ee8eee921d74f6b5eef2f1980ec97.tar.gz
cachepc-5e21196a9c7ee8eee921d74f6b5eef2f1980ec97.zip
Basic qemu eviction test with signalled stepping and added rip syscall
Diffstat (limited to 'test/kvm-eviction.c')
-rw-r--r--test/kvm-eviction.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/test/kvm-eviction.c b/test/kvm-eviction.c
index cc1fbe3..02830fd 100644
--- a/test/kvm-eviction.c
+++ b/test/kvm-eviction.c
@@ -28,10 +28,10 @@ collect(struct kvm *kvm, uint8_t *counts)
if (kvm->run->exit_reason == KVM_EXIT_MMIO) {
errx(1, "KVM died from OOB access! rip:%lu addr:%lu",
- vm_get_rip(kvm), kvm->run->mmio.phys_addr);
+ vm_get_rip(), kvm->run->mmio.phys_addr);
} else if (kvm->run->exit_reason != KVM_EXIT_HLT) {
errx(1, "KVM died! rip:%lu code:%i",
- vm_get_rip(kvm), kvm->run->exit_reason);
+ vm_get_rip(), kvm->run->exit_reason);
}
ret = ioctl(kvm_dev, KVM_CPC_READ_COUNTS, counts);
@@ -45,6 +45,7 @@ main(int argc, const char **argv)
struct guest guests[2];
uint8_t counts[2][SAMPLE_COUNT][L1_SETS];
uint8_t baseline[L1_SETS];
+ uint32_t arg;
int i, k, ret;
vmtype = "kvm";
@@ -72,8 +73,9 @@ main(int argc, const char **argv)
ret = ioctl(kvm_dev, KVM_CPC_RESET);
if (ret == -1) err(1, "KVM_CPC_RESET");
- ret = ioctl(kvm_dev, KVM_CPC_LONG_STEP);
- if (ret == -1) err(1, "KVM_CPC_LONG_STEP");
+ arg = CPC_TRACK_EXIT_EVICTIONS;
+ ret = ioctl(kvm_dev, KVM_CPC_TRACK_MODE, &arg);
+ if (ret == -1) err(1, "KVM_CPC_TRACK_MODE");
/* resolve page faults in advance (code only covers 1 page)..
* we want the read counts to apply between KVM_RUN and KVM_EXIT_HLT,