diff options
| author | Louis Burda <quent.burda@gmail.com> | 2023-02-07 07:58:27 -0600 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2023-02-07 07:58:27 -0600 |
| commit | 32331c7f421411bccb87ea818a2a0198b8cf88aa (patch) | |
| tree | c1168e406640acf1a6dbca60dfb046bedaaab533 /test/kvm-targetstep.c | |
| parent | a2cdd64c6f915d969dfa21e23049ff4b3836b13d (diff) | |
| download | cachepc-32331c7f421411bccb87ea818a2a0198b8cf88aa.tar.gz cachepc-32331c7f421411bccb87ea818a2a0198b8cf88aa.zip | |
Add syscall to deinit events to prevent blocking on send
Diffstat (limited to 'test/kvm-targetstep.c')
| -rw-r--r-- | test/kvm-targetstep.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/test/kvm-targetstep.c b/test/kvm-targetstep.c index f30563c..d7bb81c 100644 --- a/test/kvm-targetstep.c +++ b/test/kvm-targetstep.c @@ -53,10 +53,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 @@ -73,15 +76,10 @@ main(int argc, const char **argv) uint32_t arg; 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(); @@ -113,10 +111,13 @@ 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); @@ -218,10 +219,8 @@ main(int argc, const char **argv) while (monitor(&kvm, false) != 2); printf("Monitor exit\n"); - } - - ipc_free(ipc); - kvm_setup_deinit(); + ipc_free(ipc); + } } |
