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]
- Subject: Re: [Xen-devel] [tip:x86/platform] x86/hyper-v: Use hypercall for remote TLB flush
- From: Steven Rostedt <rostedt@xxxxxxxxxxx>
- Date: Tue, 15 Aug 2017 20:02:32 -0400
- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>, boris.ostrovsky@xxxxxxxxxx, "linux-tip-commits@xxxxxxxxxxxxxxx" <linux-tip-commits@xxxxxxxxxxxxxxx>, Jork Loeser <Jork.Loeser@xxxxxxxxxxxxx>, Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, Simon Xiao <sixiao@xxxxxxxxxxxxx>, "andy.shevchenko@xxxxxxxxx" <andy.shevchenko@xxxxxxxxx>, "luto@xxxxxxxxxx" <luto@xxxxxxxxxx>, "hpa@xxxxxxxxx" <hpa@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, "tglx@xxxxxxxxxxxxx" <tglx@xxxxxxxxxxxxx>, KY Srinivasan <kys@xxxxxxxxxxxxx>, "torvalds@xxxxxxxxxxxxxxxxxxxx" <torvalds@xxxxxxxxxxxxxxxxxxxx>, "mingo@xxxxxxxxxx" <mingo@xxxxxxxxxx>
- Dmarc-filter: OpenDMARC Filter v1.3.2 mail.kernel.org 51E2422B67
- In-reply-to: <20170811120714.rwr24ewr4mjzwznn@hirez.programming.kicks-ass.net>
- References: <20170802160921.21791-8-vkuznets@redhat.com> <tip-2ffd9e33ce4af4e8cfa3e17bf493defe8474e2eb@git.kernel.org> <20170810185646.GI6524@worktop.programming.kicks-ass.net> <DM5PR21MB0476915D204F850F7F7C1475A0880@DM5PR21MB0476.namprd21.prod.outlook.com> <CY4PR21MB06313B9D59F8846CDDE443F0F1880@CY4PR21MB0631.namprd21.prod.outlook.com> <20170810192742.GJ6524@worktop.programming.kicks-ass.net> <87lgmqqwzl.fsf@vitty.brq.redhat.com> <20170811105625.hmdfnp3yh72zut33@hirez.programming.kicks-ass.net> <43ddd29a-1670-ef0b-c327-10a2dca67cb4@citrix.com> <20170811120714.rwr24ewr4mjzwznn@hirez.programming.kicks-ass.net>
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]