On 16/02/16 10:14, Jan Beulich wrote: > --- a/xen/arch/x86/smp.c > +++ b/xen/arch/x86/smp.c > @@ -205,26 +205,30 @@ static unsigned int flush_flags; > > void invalidate_interrupt(struct cpu_user_regs *regs) > { > + unsigned int flags = flush_flags; > ack_APIC_irq(); > perfc_incr(ipis); > - if ( !__sync_local_execstate() || > - (flush_flags & (FLUSH_TLB_GLOBAL | FLUSH_CACHE)) ) > - flush_area_local(flush_va, flush_flags); > + if ( __sync_local_execstate() ) > + flags &= ~FLUSH_TLB;
If a switch happened, write_ptbase() also flushed global mappings. I believe you can also mask out FLUSH_TLB_GLOBAL here. Otherwise, the rest looks ok. Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel