Il 05/03/2013 16:25, Gleb Natapov ha scritto: >> 1) We need to set the generic interrupt type of the system before we create >> vcpus. >> >> This is a new ioctl that sets the overall system interrupt controller type >> to a specific model. This used so that when we create vcpus, we can create >> the appended "local interrupt controller" state without the actual interrupt >> controller device available yet. It is also used later to switch between >> interrupt controller implementations. >> >> This interrupt type is write once and frozen after the first vcpu got >> created. > > Why explicit ioctl is needed? Why not require specific irqchip to be > created before first vcpu. The device created determines system interrupt > controller type.
QEMU creates CPUs before devices, and CPUs need to know what kind of local interrupt controller to create. Similar to how in-kernel LAPIC state is created long before the userspace device that proxies the LAPIC. I think the above design makes sense. The alternative would be to entirely separate the creation of CPUs and devices. You could even support heterogeneous systems with some in-kernel irqchips and some userspace irqchips; sounds cool, but useless too. >> 7) Interrupt line connections to vcpus are implicit >> >> We don't explicitly mark which in-kernel irqchip interrupt line >> goes to which vcpu. This is done implicitly. If we see a need for it, we >> create a new irqchip device type that allows us to explicitly configure >> vcpu connections. > > OK. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html