diff options
Diffstat (limited to 'test/kvm-pagestep.c')
| -rw-r--r-- | test/kvm-pagestep.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/test/kvm-pagestep.c b/test/kvm-pagestep.c index 03cd288..aaecdd8 100644 --- a/test/kvm-pagestep.c +++ b/test/kvm-pagestep.c @@ -42,10 +42,13 @@ monitor(struct kvm *kvm, bool baseline) } void -kill_child(void) +deinit(void) { - printf("Killing vm..\n"); + ioctl(kvm_dev, KVM_CPC_DEINIT); + kill(child, SIGKILL); + + kvm_setup_deinit(); } int @@ -58,15 +61,10 @@ main(int argc, const char **argv) uint64_t eventcnt; int ret; - vmtype = "kvm"; - if (argc > 1) vmtype = argv[1]; - if (strcmp(vmtype, "kvm") && strcmp(vmtype, "sev") - && strcmp(vmtype, "sev-es") - && strcmp(vmtype, "sev-snp")) - errx(1, "invalid vm mode: %s", vmtype); - setvbuf(stdout, NULL, _IONBF, 0); + parse_vmtype(argc, argv); + kvm_setup_init(); ipc = ipc_alloc(); @@ -100,10 +98,14 @@ main(int argc, const char **argv) printf("VM exit\n"); vm_deinit(&kvm); + + ipc_free(ipc); + + kvm_setup_deinit(); } else { pin_process(0, SECONDARY_CORE, true); - atexit(kill_child); + atexit(deinit); ipc_wait_child(ipc); @@ -123,13 +125,8 @@ main(int argc, const char **argv) } printf("Monitor exit\n"); - } - - ipc_free(ipc); - ret = ioctl(kvm_dev, KVM_CPC_RESET, NULL); - if (ret < 0) err(1, "KVM_CPC_RESET"); - - kvm_setup_deinit(); + ipc_free(ipc); + } } |
