From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38670) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Su4sm-00058f-V0 for qemu-devel@nongnu.org; Wed, 25 Jul 2012 12:56:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Su4si-00028E-Es for qemu-devel@nongnu.org; Wed, 25 Jul 2012 12:56:20 -0400 Received: from thoth.sbs.de ([192.35.17.2]:24047) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Su4si-00027x-4k for qemu-devel@nongnu.org; Wed, 25 Jul 2012 12:56:16 -0400 Message-ID: <5010252D.40908@siemens.com> Date: Wed, 25 Jul 2012 18:56:13 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1343222672-25312-1-git-send-email-peter.maydell@linaro.org> <1343222672-25312-3-git-send-email-peter.maydell@linaro.org> <50101519.4020108@redhat.com> <5010166A.5070201@siemens.com> <501016D9.2050101@redhat.com> <501017B8.8040507@siemens.com> <50101ABE.4080801@siemens.com> <50101EBA.7040405@siemens.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/6] kvm: Rename kvm_irqchip_set_irq to kvm_inject_async_irq List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Marcelo Tosatti , Alexander Graf , "patches@linaro.org" , Avi Kivity , "qemu-devel@nongnu.org" On 2012-07-25 18:41, Peter Maydell wrote: > On 25 July 2012 17:28, Jan Kiszka wrote: >> On 2012-07-25 18:24, Peter Maydell wrote: >>> ...incidentally I was thinking about maybe moving kvm_irqchip_create() >>> from being called by kvm_init() to being called by the device >>> init function for the relevant irqchip (particularly we'll need >>> to do that if we adopt Avi's suggestion of having a parameter >>> to KVM_CREATE_IRQCHIP to specify a particular kind of irqchip). >>> But that's more invasive surgery so I didn't want to do it yet. >> >> This won't fly as irchip affects the whole orchestra (vcpus & irqchip >> stubs in user space), at least on x86, and has to be called in the >> current order. That's also why kernel_irqchip is a machine options, not >> an option of one of the many device models. > > Yes, one of the things you'd need to do is move actual creation > of the vcpus (as opposed to the QEMU CPU QOM objects) to rather > later in the sequence than they are now. KVM VCPU creation is bound to the QOM object creation phase if we want hotplugging support. > > Where you have multiple devices which all need to go the same way > you can put that in the machine model code and then have all the > devices take an option the machine model sets to say which way > they go. > > (Oddities in the x86 specific bits of the KVM kernel code ought > to result in oddities in x86 specific bits of QEMU, not in > generic bits :-)) I dreamed of this as well before porting in-kernel irqchip support upstream. ;) But the point of this service is not that arch-specific in fact: By the time you have a set of kernel irqchips that cannot reasonably be instantiated / enabled separately, a single service helps to avoid that userspace tries to do this mistake at all. Not all archs may have this requirement, but a generic service needs to address it if it wants to be generic. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux