On 07/25/2012 07:28 PM, Jan Kiszka wrote: > On 2012-07-25 18:24, Peter Maydell wrote: >> On 25 July 2012 17:18, Peter Maydell <peter.mayd...@linaro.org> wrote: >>> Not in the sense of "you need to KVM_CREATE_IRQCHIP it", >> >> ...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, to elaborate, KVM_CREATE_IRQCHIP creates N+3 devices: N local APICs (deferred until N vcpus are created), one IOAPIC, and two PICs. We debated decoupling those devices, but since there are a lot of intercommunication among those devices, it was deemed to difficult (plus these were the early kvm days when we had different get it in/get it right tradeoffs). -- error compiling committee.c: too many arguments to function