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

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

 



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.

--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux