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

Re: [Xen-devel] [tip:x86/platform] x86/hyper-v: Use hypercall for remote TLB flush



On Fri, 11 Aug 2017 14:07:14 +0200
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> It goes like:
> 
>       CPU0                    CPU1
> 
>       unhook page
>                               cli
>                               traverse page tables
>       TLB invalidate --->     <IF clear, therefore CPU0 waits>
>                               sti
>                               <IPI>
>                                TLB invalidate
>                       <------  complete

I guess the important part here is the above "complete". CPU0 doesn't
proceed until its receives it. Thus it does act like
cli~rcu_read_lock(), sti~rcu_read_unlock(), and "TLB invalidate" is
equivalent to synchronize_rcu().

[ this response is for clarification for the casual observer of this
  thread ;-) ]

-- Steve

>                               </IPI>
>       free page
> 
> So the CPU1 page-table walker gets an existence guarantee of the
> page-tables by clearing IF.


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

 


Rackspace

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