From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Rutherford Subject: Re: [PATCH v5 4/4] KVM: x86: Add support for local interrupt requests from userspace Date: Tue, 28 Jul 2015 17:50:56 -0700 Message-ID: <20150729005056.GA29865@google.com> References: <1438039062-3168-1-git-send-email-srutherford@google.com> <1438039062-3168-4-git-send-email-srutherford@google.com> <55B7A6AE.5070001@redhat.com> <20150728190635.GA7460@google.com> <55B7FCB1.1020508@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: KVM list To: Paolo Bonzini Return-path: Received: from mail-pa0-f51.google.com ([209.85.220.51]:34602 "EHLO mail-pa0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751246AbbG2Aw2 (ORCPT ); Tue, 28 Jul 2015 20:52:28 -0400 Received: by pacan13 with SMTP id an13so79498206pac.1 for ; Tue, 28 Jul 2015 17:52:28 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55B7FCB1.1020508@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Jul 29, 2015 at 12:05:37AM +0200, Paolo Bonzini wrote: > Ok, I understand it now. However, you're still not causing an exit > when LVT0 changes, are you? post_kvm_run_save is not run until the > next exit to userspace, which could be a long time later. Yes! This is definitely right. This may wait as long as an entire entry/exit before actually exiting to userspace. Moving into dm_request_for_irq_injection is definitely the way to go. > > So, I think that you do not need KVM_REQ_PIC_UNMASK_EXIT. Instead, > you can modify dm_request_for_irq_injection to handle the split-irqchip > case, like this: > > if (!vcpu->run->request_interrupt_window || pic_in_kernel(vcpu->kvm)) > return false; > > if (kvm_cpu_has_interrupt(vcpu)) > return false; > > return (irqchip_split(vcpu->kvm) > ? kvm_apic_accept_pic_intr(vcpu) > : kvm_arch_interrupt_allowed(vcpu)); > > This will cause KVM_RUN to return -EINTR, which QEMU happens to handle > the same way as KVM_EXIT_IRQ_WINDOW_OPEN. I definitely prefer the explit exit reason. It's also a bit easier to make work with our VMM ;) > Feel free to post v6 of this patch only. Everything else is mostly > okay; there are some leftovers here and there (lapic_in_kernel, > GET_VECTOR_FROM_USERSPACE) but I can fix that. I'll give it another once over to remove the dead code. Sorry about leaving that junk in. > How is the integration with QEMU going? With this latest iteration > it should be relatively easy. A new team member is sinking his teeth into it, as an starter project. He'll likely have a prototype of it working soon. Steve > > Paolo