On 25 July 2012 17:28, Jan Kiszka <jan.kis...@siemens.com> 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. 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 :-)) -- PMM