From 32331c7f421411bccb87ea818a2a0198b8cf88aa Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Tue, 7 Feb 2023 07:58:27 -0600 Subject: Add syscall to deinit events to prevent blocking on send --- test/kvm-pagestep.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'test/kvm-pagestep.c') 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); + } } -- cgit v1.2.3-71-gd317