From 74f21e62f56453bcebf719d09139bd9bfc873e46 Mon Sep 17 00:00:00 2001 From: dv Date: Thu, 10 Nov 2022 23:39:51 +0000 Subject: [PATCH] vmd(8): remove toggling interrupt line on vcpu in vcpu run loop We toggle the interrupt "line" on the vcpu when we assert or deassert irq on the pic in either the vcpu thread (emulating some devices) or on the device event thread (mostly handling reading available data). Having it in the vcpu run loop here just results in another ioctl(2) call before the one for re-entering the guest cpu. Removing it shows no noticeable behavioral change in existing guests. ok mlarkin@ --- usr.sbin/vmd/vm.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/usr.sbin/vmd/vm.c b/usr.sbin/vmd/vm.c index 763e7be8331..458071fe9c3 100644 --- a/usr.sbin/vmd/vm.c +++ b/usr.sbin/vmd/vm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vm.c,v 1.74 2022/11/10 11:46:39 dv Exp $ */ +/* $OpenBSD: vm.c,v 1.75 2022/11/10 23:39:51 dv Exp $ */ /* * Copyright (c) 2015 Mike Larkin @@ -1512,23 +1512,6 @@ vcpu_run_loop(void *arg) } else vrp->vrp_irq = 0xFFFF; - /* Still more pending? */ - if (i8259_is_pending()) { - /* - * XXX can probably avoid ioctls here by providing intr - * in vrp - */ - if (vcpu_pic_intr(vrp->vrp_vm_id, - vrp->vrp_vcpu_id, 1)) { - fatal("can't set INTR"); - } - } else { - if (vcpu_pic_intr(vrp->vrp_vm_id, - vrp->vrp_vcpu_id, 0)) { - fatal("can't clear INTR"); - } - } - if (ioctl(env->vmd_fd, VMM_IOC_RUN, vrp) == -1) { /* If run ioctl failed, exit */ ret = errno; -- 2.20.1