From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Mackerras Date: Thu, 14 Mar 2013 22:28:03 +0000 Subject: Re: [PATCH] KVM: Add KVM_CAP_IRQ_ARCH capability Message-Id: <20130314222803.GJ9841@iris.ozlabs.ibm.com> List-Id: References: <1363285238.28440.9@snotra> <310786EE-868C-4C07-A037-DAA2101B0F21@suse.de> <1363286128.28440.10@snotra> <76C38059-3AE6-45F3-9CAC-D3041FFEF54C@suse.de> In-Reply-To: <76C38059-3AE6-45F3-9CAC-D3041FFEF54C@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Alexander Graf Cc: Scott Wood , kvm@vger.kernel.org, kvm-ppc@vger.kernel.org On Thu, Mar 14, 2013 at 08:03:30PM +0100, Alexander Graf wrote: > > On 14.03.2013, at 19:35, Scott Wood wrote: > > > On 03/14/2013 01:33:30 PM, Alexander Graf wrote: > >> We also want int pic_fd, no? > > > > Not sure we really need that on the vcpu. We'll need it on the vm unless we add it as an arg to the vcpu cap enable. > > I don't think we need anything vm global for the cpu <-> PIC connections. Also, if you want to deregister a CPU (hotplug remove), you probably want to tell the PIC that the CPU has gone. I had kvm_arch_vcpu_free() calling a release function for the selected PIC, which should be enough to let the PIC know the CPU has gone away, I would think. I agree we don't need anything vm global. The only vm ioctl which needs to care about interrupt controllers is KVM_IRQ_LINE, and the approach I take in my patchset is just to call all of the compiled-in interrupt controllers until one of them takes it. That assumes that each irq architecture adds its own private data pointer to kvm->arch if it's compiled in, which is feasible provided there are only a few architectures supported, and gives the advantages of strong typing. I did it this way because with the irq architecture being specified per vcpu, there is no overall vm global irq architecture. Paul.