Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964866AbeAJI3P (ORCPT + 1 other); Wed, 10 Jan 2018 03:29:15 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:38690 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752770AbeAJI3O (ORCPT ); Wed, 10 Jan 2018 03:29:14 -0500 Date: Wed, 10 Jan 2018 09:22:07 +0100 From: Peter Zijlstra To: Willy Tarreau Cc: linux-kernel@vger.kernel.org, x86@kernel.org, Andy Lutomirski , Borislav Petkov , Brian Gerst , Dave Hansen , Ingo Molnar , Linus Torvalds , Thomas Gleixner , Josh Poimboeuf , "H. Peter Anvin" , Greg Kroah-Hartman , Kees Cook Subject: Re: [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set Message-ID: <20180110082207.GX29822@worktop.programming.kicks-ass.net> References: <1515502580-12261-1-git-send-email-w@1wt.eu> <1515502580-12261-7-git-send-email-w@1wt.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1515502580-12261-7-git-send-email-w@1wt.eu> User-Agent: Mutt/1.5.22.1 (2013-10-16) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Tue, Jan 09, 2018 at 01:56:20PM +0100, Willy Tarreau wrote: > - use pti_disable instead of task flag > --- > arch/x86/entry/calling.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h > index 2c0d3b5..5361a10 100644 > --- a/arch/x86/entry/calling.h > +++ b/arch/x86/entry/calling.h > @@ -229,6 +229,11 @@ > > .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req > ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_PTI > + > + /* The "pti_disable" mm attribute is mirrored into this per-cpu var */ > + cmpb $0, PER_CPU_VAR(pti_disable) > + jne .Lend_\@ > + > mov %cr3, \scratch_reg So could you switch back to a task flag for this? That word is already cache-hot on the exit path while your new variable is not.