From: dv Date: Thu, 10 Nov 2022 23:39:51 +0000 (+0000) Subject: vmd(8): remove toggling interrupt line on vcpu in vcpu run loop X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=74f21e62f56453bcebf719d09139bd9bfc873e46;p=openbsd 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@ --- 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;