Fischer, Anna wrote:
I thought that one use case of VT-d2 interrupt remapping was to be able to safely and more efficiently deliver interrupts to the CPU that runs the particular VCPU of the guest that owns the I/O device that issues the interrupt. Shouldn't there at least be some performance (e.g. latency) improvement doing the remapping and checking in HW with a predefined table rather than multiplexing this in software in the hypervisor layer?
This can be done even without VT-d. Since qemu knows how the guest affines its interrupts (via the MSI entry), it can affine the corresponding host interrupt.
Right now Linux can affine the host interrupt to a cpu; this requires periodic polling since the vcpu thread can move around. It would be interesting to add an API to affine an interrupt to a thread, so whenever the thread is migrated to a different cpu, the interrupt follows it around. I imagine it would be useful for non-virtualization applications as well.
-- Do not meddle in the internals of kernels, for they are subtle and quick to panic. -- 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