Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753179AbdHKNHh (ORCPT ); Fri, 11 Aug 2017 09:07:37 -0400 Received: from mx2.suse.de ([195.135.220.15]:54925 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752912AbdHKNHe (ORCPT ); Fri, 11 Aug 2017 09:07:34 -0400 Subject: Re: [tip:x86/platform] x86/hyper-v: Use hypercall for remote TLB flush To: Peter Zijlstra Cc: Vitaly Kuznetsov , Jork Loeser , KY Srinivasan , Simon Xiao , Haiyang Zhang , Stephen Hemminger , "torvalds@linux-foundation.org" , "luto@kernel.org" , "hpa@zytor.com" , "linux-kernel@vger.kernel.org" , "rostedt@goodmis.org" , "andy.shevchenko@gmail.com" , "tglx@linutronix.de" , "mingo@kernel.org" , "linux-tip-commits@vger.kernel.org" , boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org References: <20170810185646.GI6524@worktop.programming.kicks-ass.net> <20170810192742.GJ6524@worktop.programming.kicks-ass.net> <87lgmqqwzl.fsf@vitty.brq.redhat.com> <20170811105625.hmdfnp3yh72zut33@hirez.programming.kicks-ass.net> <20170811123534.quyckfyspl5fqdrg@hirez.programming.kicks-ass.net> <8d758a18-3db4-41c3-9748-41a649b7950b@suse.com> <20170811125442.5nyrvcylhdrmryt2@hirez.programming.kicks-ass.net> From: Juergen Gross Message-ID: Date: Fri, 11 Aug 2017 15:07:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170811125442.5nyrvcylhdrmryt2@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 824 Lines: 19 On 11/08/17 14:54, Peter Zijlstra wrote: > On Fri, Aug 11, 2017 at 02:46:41PM +0200, Juergen Gross wrote: >> Aah, okay. Now I understand the problem. The TLB isn't the issue but the >> IPI is serving two purposes here: TLB flushing (which is allowed to >> happen at any time) and serialization regarding access to critical pages >> (which seems to be broken in the Xen case as you suggest). > > Indeed, and now hyper-v as well. Is it possible to distinguish between non-critical calls of flush_tlb_others() (which should be the majority IMHO) and critical ones regarding above problem? I guess the only problem is the case when a page table can be freed because its last valid entry is gone, right? We might want to add a serialization flag to indicate flushing _and_ serialization via IPI should be performed. Juergen