From looking at the code it looks
like that interrupt affinity will be set for all physical IRQs and it will be
set to the physical processor on which VCPU is running which called
request_irq.
Can somebody confirm my
understanding?
Pirq_guest_bind (in
arch/x86/irq.c) calls set_affinity (which will translate to
dma_msi_set_affinity function in arch/x86/hvm/vmx/vtd/intel-iommu.c for
VTd).
So that means if request_irq for
NIC interrupt is called when a domain with single VCPU is scheduled on
physical CPU 1 then NIC interrupt will be bind to physical CPU 1 and later if
the same domain is scheduled to physical CPU 0 it won’t get the interrupt
until it does a VMEXIT.
So for lower interrupt latency we
are should pin domain VCPU
also.