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

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



# 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
storm.

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 = 
pt_irq_bind->u.msi.gflags;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.