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/
Home Products Support Community News


[Xen-changelog] [xen-unstable] x86: Directly clear all pending EOIs once

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Directly clear all pending EOIs once MSI info changed
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 26 Jan 2010 08:15:13 -0800
Delivery-date: Tue, 26 Jan 2010 08:15:22 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1264521181 0
# Node ID 58b45bb15137c450b1616935967cbc7e293bf521
# Parent  cb0375fcec23ea188511c130feaee0c18b352968
x86: Directly clear all pending EOIs once MSI info changed

As to unmaskable MSI, its deferred EOI policy only targets
for avoiding IRQ storm. It should be safe to clear pending
EOIs in advance when guest irq migration occurs, because next
interrupt's EOI write is still deferred, and also can avoid

Signed-off-by: Xiantao Zhang <xiantao.zhang@xxxxxxxxx>
 xen/drivers/passthrough/io.c |    2 ++
 1 files changed, 2 insertions(+)

diff -r cb0375fcec23 -r 58b45bb15137 xen/drivers/passthrough/io.c
--- a/xen/drivers/passthrough/io.c      Tue Jan 26 15:52:30 2010 +0000
+++ b/xen/drivers/passthrough/io.c      Tue Jan 26 15:53:01 2010 +0000
@@ -197,6 +197,8 @@ int pt_irq_create_bind_vtd(
             /* if pirq is already mapped as vmsi, update the guest data/addr */
             if ( hvm_irq_dpci->mirq[pirq].gmsi.gvec != pt_irq_bind->u.msi.gvec 
                     hvm_irq_dpci->mirq[pirq].gmsi.gflags != 
pt_irq_bind->u.msi.gflags) {
+                /* Directly clear pending EOIs before enabling new MSI info. */
+                pirq_guest_eoi(d, pirq);
                 hvm_irq_dpci->mirq[pirq].gmsi.gvec = pt_irq_bind->u.msi.gvec;
                 hvm_irq_dpci->mirq[pirq].gmsi.gflags = 

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: Directly clear all pending EOIs once MSI info changed, Xen patchbot-unstable <=