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

Re: [Xen-devel] [PATCH v2] x86: avoid flush IPI when possible



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.cooper3@xxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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