From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751735AbdK0VNy (ORCPT ); Mon, 27 Nov 2017 16:13:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49870 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751318AbdK0VNx (ORCPT ); Mon, 27 Nov 2017 16:13:53 -0500 Date: Mon, 27 Nov 2017 15:13:45 -0600 From: Josh Poimboeuf To: Thomas Gleixner Cc: LKML , Dave Hansen , Andy Lutomirski , Ingo Molnar , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Rik van Riel , daniel.gruss@iaik.tugraz.at, hughd@google.com, keescook@google.com, linux-mm@kvack.org, michael.schwarz@iaik.tugraz.at, moritz.lipp@iaik.tugraz.at, richard.fellner@student.tugraz.at, Juergen Gross , Boris Ostrovsky Subject: Re: [patch 1/4] x86/paravirt: Dont patch flush_tlb_single Message-ID: <20171127211345.g7qxhhmgfcz66xhl@treble> References: <20171127203416.236563829@linutronix.de> <20171127204257.497387357@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20171127204257.497387357@linutronix.de> User-Agent: Mutt/1.6.0.1 (2016-04-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 27 Nov 2017 21:13:53 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 27, 2017 at 09:34:17PM +0100, Thomas Gleixner wrote: > native_flush_tlb_single() is not just INLVPG anymore. With > X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow > mapping. But even with KAISER disabled flushing the particular ASID is the > right thing to do. > > Remove the paravirt patching for it. > > Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster") > Signed-off-by: Thomas Gleixner > --- > arch/x86/kernel/paravirt_patch_64.c | 2 -- > 1 file changed, 2 deletions(-) > > --- a/arch/x86/kernel/paravirt_patch_64.c > +++ b/arch/x86/kernel/paravirt_patch_64.c > @@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; > DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax"); > DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax"); > DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3"); > -DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)"); > DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd"); > > DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq"); > @@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb > PATCH_SITE(pv_mmu_ops, read_cr2); > PATCH_SITE(pv_mmu_ops, read_cr3); > PATCH_SITE(pv_mmu_ops, write_cr3); > - PATCH_SITE(pv_mmu_ops, flush_tlb_single); > PATCH_SITE(pv_cpu_ops, wbinvd); > #if defined(CONFIG_PARAVIRT_SPINLOCKS) > case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock): Nice find! Reviewed-and-tested-by: Josh Poimboeuf -- Josh