debuggers.hg

changeset 20901:58b45bb15137

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@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jan 26 15:53:01 2010 +0000 (2010-01-26)
parents cb0375fcec23
children 8e1385f1e8a7
files xen/drivers/passthrough/io.c
line diff
     1.1 --- a/xen/drivers/passthrough/io.c	Tue Jan 26 15:52:30 2010 +0000
     1.2 +++ b/xen/drivers/passthrough/io.c	Tue Jan 26 15:53:01 2010 +0000
     1.3 @@ -197,6 +197,8 @@ int pt_irq_create_bind_vtd(
     1.4              /* if pirq is already mapped as vmsi, update the guest data/addr */
     1.5              if ( hvm_irq_dpci->mirq[pirq].gmsi.gvec != pt_irq_bind->u.msi.gvec ||
     1.6                      hvm_irq_dpci->mirq[pirq].gmsi.gflags != pt_irq_bind->u.msi.gflags) {
     1.7 +                /* Directly clear pending EOIs before enabling new MSI info. */
     1.8 +                pirq_guest_eoi(d, pirq);
     1.9  
    1.10                  hvm_irq_dpci->mirq[pirq].gmsi.gvec = pt_irq_bind->u.msi.gvec;
    1.11                  hvm_irq_dpci->mirq[pirq].gmsi.gflags = pt_irq_bind->u.msi.gflags;