WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] interrupt affinity question

To: "Agarwal, Lomesh" <lomesh.agarwal@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] interrupt affinity question
From: "Kay, Allen M" <allen.m.kay@xxxxxxxxx>
Date: Wed, 24 Oct 2007 21:14:19 -0700
Cc: "Han, Weidong" <weidong.han@xxxxxxxxx>
Delivery-date: Wed, 24 Oct 2007 21:15:00 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <A3258B497F1C1441AD36A2E8B45FD628DF01C7@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <A3258B497F1C1441AD36A2E8B45FD628DF0026@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <13A2F7DE1BAEA345A61DD40F303ED7A6B215FD@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <A3258B497F1C1441AD36A2E8B45FD628DF01C7@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcgWgI5oIqkhXjXyRVC23chhCgIGsQAFpsKQAAizTnAAANgvAA==
Thread-topic: [Xen-devel] interrupt affinity question
It should be the same as linux.  Dom0 Linux basically tells xen what value to program into IOAPCI RTE.


From: Agarwal, Lomesh
Sent: Wednesday, October 24, 2007 8:50 PM
To: Kay, Allen M; 'xen-devel@xxxxxxxxxxxxxxxxxxx'
Cc: Han, Weidong
Subject: RE: [Xen-devel] interrupt affinity question

So there is no default interrupt affinity for any physical IRQ in Xen? Is IOAPIC programmed to deliver interrupts in round robin fashion or all interrupts go to one processor only?

 


From: Kay, Allen M
Sent: Wednesday, October 24, 2007 5:22 PM
To: Agarwal, Lomesh; xen-devel@xxxxxxxxxxxxxxxxxxx
Cc: Han, Weidong
Subject: RE: [Xen-devel] interrupt affinity question

 

The dma_msi_* stuff in intel-iommu.c is not related to this.  It looks like an area that needs to be cleaned up a bit.

 

The call to request_irq() is for setting up vt-d fault handler - linking vector with iommu_page_fault().  It is only used when there is a iommu page fault which should not happen if everything is setup correctly.

 

Passthru device interrupt handling is via do_IRQ->do_IRQ_guest->hvm_do_IRQ_dpci path.  The ioapic programming for the passthru device was originally setup by the dom0 pci driver.  The interrupt of the passthru device always gets handled by xen first and then gets re-inject to the guest via virtual ioapic/lapic models.

 

There is a interrupt latency between the point where physical interrupt occurs and the point virtual interrupt interrupt is injected to the guest - especially if guest's vcpu is not running.  We are still investigating on how to lower this latency.

 

Allen 

 


From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Agarwal, Lomesh
Sent: Wednesday, October 24, 2007 3:55 PM
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] interrupt affinity question

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.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>