Re: [RFC][PATCH] KVM: Introduce direct MSI message injection for in-kernel irqchips

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

 



On 2011-10-21 13:06, Michael S. Tsirkin wrote:
> On Fri, Oct 21, 2011 at 11:19:19AM +0200, Jan Kiszka wrote:
>> Currently, MSI messages can only be injected to in-kernel irqchips by
>> defining a corresponding IRQ route for each message. This is not only
>> unhandy if the MSI messages are generated "on the fly" by user space,
>> IRQ routes are a limited resource that user space as to manage
>> carefully.
>>
>> By providing a direct injection with, we can both avoid using up limited
>> resources and simplify the necessary steps for user land. The API
>> already provides a channel (flags) to revoke an injected but not yet
>> delivered message which will become important for in-kernel MSI-X vector
>> masking support.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
> 
> I would love to see how you envision extending this to add the masking
> support at least at the API level, not necessarily the supporting code.
> 
> It would seem hard to use flags field for that since MSIX mask is per
> device per vector, not per message.
> Which gets us back to resource per vector which userspace has to manage
> ...
> 
> interrupt remapping is also per device, so it isn't any easier
> with this API.

Yes, we will need an additional field to associate the message with its
source device. Could be a PCI address or a handle (like the one assigned
devices get) returned on MSI-X kernel region setup. We will need a flag
to declare that address/handle valid, also to tell apart platform MSI
messages (e.g. coming from HPET on x86). I see no obstacles ATM that
prevent doing that on top of this API, do you?

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
--
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