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

Reply via email to