Re: in-kernel interrupt controller steering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06.03.2013, at 12:46, Paolo Bonzini wrote:

>> Please go ahead and try to describe an interface the way you envision
>> it. It needs to fulfill the following criteria:
>> 
>>  * different machine models have different interrupt controller
>>  types
>>  * we need to be able to fetch information from interrupt
>>  controllers, this should be as flexible as possible because we
>>  don't know all future state we want to synchronize today
>>  * user space creates its virtual representation of an interrupt
>>  controller after the vcpus got created
>>  * user space needs a token to an interrupt controller, so that we
>>  have the possibility to add a second in-kernel irqchip if the need
>>  arises
>> 
>> What the current interface does is:
>> 
>>  SET_IRQCHIP_TYPE:
>> 
>>    * declare CPUs as listeners to a specific irqchip bus
>>    * set the path that interrupt injection takes (this could
>>    probably be changed to dynamic lookups though, based on device
>>    tokens)
>> 
>>  CREATE_DEVICE:
>> 
>>    * spawn one or multiple in-kernel irqchip devices that hook up to
>>    CPUs using the irqchip bus
>>    * tell user space a token to access this irqchip
>> 
>> I really don't see why you wouldn't want to have that split.
> 
> I agree.  But is the device really being created at CREATE_DEVICE time?
> What happens if you create N CPUs and N-1 irqchips?

irqchip in CREATE_DEVICE is the IOAPIC, not the LAPIC. The LAPIC gets spawned at vcpu creation.

> On x86, the LAPIC is created magically together with the VCPU.

Yes, and so far I haven't seen any proposal to change this even in the CREATE_DEVICE world.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux