From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [Android-virt] [PATCH v9 11/16] ARM: KVM: Inject IRQs and FIQs from userspace Date: Tue, 07 Aug 2012 16:59:52 +0300 Message-ID: <50211F58.6080602@redhat.com> References: <20120703085841.27746.82730.stgit@ubuntu> <20120703090115.27746.55688.stgit@ubuntu> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Christoffer Dall , android-virt@lists.cs.columbia.edu, kvm@vger.kernel.org, tech@virtualopensystems.com, Marc Zyngier To: Peter Maydell Return-path: Received: from mx1.redhat.com ([209.132.183.28]:56373 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751982Ab2HGOAN (ORCPT ); Tue, 7 Aug 2012 10:00:13 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 08/06/2012 08:20 PM, Peter Maydell wrote: > On 3 July 2012 10:01, Christoffer Dall wrote: >> From: Christoffer Dall >> >> Userspace can inject IRQs and FIQs through the KVM_IRQ_LINE VM ioctl. >> This ioctl is used since the sematics are in fact two lines that can be >> either raised or lowered on the VCPU - the IRQ and FIQ lines. >> >> KVM needs to know which VCPU it must operate on and whether the FIQ or >> IRQ line is raised/lowered. Hence both pieces of information is packed >> in the kvm_irq_level->irq field. The irq fild value will be: >> IRQ: vcpu_index << 1 >> FIQ: (vcpu_index << 1) | 1 >> >> This is documented in Documentation/kvm/api.txt. > > It occurred to me that rather than encoding the CPU index in the IRQ > field value, maybe we should just use the per-vcpu version of > KVM_IRQ_LINE the same way we do for injecting the per-CPU lines > of the in-kernel (V)GIC ? What do you mean by "per-vcpu version of KVM_IRQ_LINE"? > > (The subtext here is that it would be cool to have QEMU's > generic interrupt handling code for KVM be able to say "if > you do a cpu_interrupt()/cpu_reset_interrupt() and async > interrupt delivery is enabled then just do the per-vcpu ioctl". > Then there wouldn't need to be any kvm-specific code in > hw/arm_pic.c at all...) If you mean "vcpu ioctl", then no, vcpu ioctls must be called from the vcpu thread. -- error compiling committee.c: too many arguments to function