[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170815200232.3ad8139e@gandalf.local.home>
Date: Tue, 15 Aug 2017 20:02:32 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Andrew Cooper <andrew.cooper3@...rix.com>,
Vitaly Kuznetsov <vkuznets@...hat.com>,
Juergen Gross <jgross@...e.com>,
Stephen Hemminger <sthemmin@...rosoft.com>,
boris.ostrovsky@...cle.com,
"linux-tip-commits@...r.kernel.org"
<linux-tip-commits@...r.kernel.org>,
Jork Loeser <Jork.Loeser@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Simon Xiao <sixiao@...rosoft.com>,
"andy.shevchenko@...il.com" <andy.shevchenko@...il.com>,
"luto@...nel.org" <luto@...nel.org>,
"hpa@...or.com" <hpa@...or.com>, xen-devel@...ts.xenproject.org,
"tglx@...utronix.de" <tglx@...utronix.de>,
KY Srinivasan <kys@...rosoft.com>,
"torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>,
"mingo@...nel.org" <mingo@...nel.org>
Subject: 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@...radead.org> 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.
Powered by blists - more mailing lists