From patchwork Sat Jan 8 16:44:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Lutomirski X-Patchwork-Id: 12707552 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70FCCC433F5 for ; Sat, 8 Jan 2022 16:44:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 191706B009A; Sat, 8 Jan 2022 11:44:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 11A436B009D; Sat, 8 Jan 2022 11:44:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ED4D66B009E; Sat, 8 Jan 2022 11:44:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0065.hostedemail.com [216.40.44.65]) by kanga.kvack.org (Postfix) with ESMTP id DD8CE6B009A for ; Sat, 8 Jan 2022 11:44:45 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id A6E6881050AA for ; Sat, 8 Jan 2022 16:44:45 +0000 (UTC) X-FDA: 79007693730.29.535C6DD Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf25.hostedemail.com (Postfix) with ESMTP id 4E374A0009 for ; Sat, 8 Jan 2022 16:44:45 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4E71FB80B3D; Sat, 8 Jan 2022 16:44:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1D57C36AEF; Sat, 8 Jan 2022 16:44:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641660283; bh=rnfvKmSwxDEuaHgQLviIQQxu942uDTnNhvFW9UzBS8M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PGG3iDU+MfqwGuvm1AXjkHOjyllQSLOpyeMjNdbpiDjnW2l8GwkOIGmkf6T29512x XAw0F9yMYlhgkh+Xp0WhfbduiIxBlZoScpEG8jLUthHHszmoB/BRMVQOKTfu/XAlJ/ jgI0Rxu3sv+cXUUHg3jPUd3OFykmRsXTXuWMCbQI7h3DiqN892JePsXipLMjMLRPyC RKFjA6Qj5XGfOlbro7ioOg+TOsHoVsXM4YNWWGHPtlA6RhSybgbMowqXkI1RAGx5k/ QJk/OW3LSpV+6FsXsqvf4KcwRuaxy6rA7DW4pDIn60kg2YEOj+I9VEQ+bEOF+5ooOT u7+Rd30vzj9rQ== From: Andy Lutomirski To: Andrew Morton , Linux-MM Cc: Nicholas Piggin , Anton Blanchard , Benjamin Herrenschmidt , Paul Mackerras , Randy Dunlap , linux-arch , x86@kernel.org, Rik van Riel , Dave Hansen , Peter Zijlstra , Nadav Amit , Mathieu Desnoyers , Andy Lutomirski Subject: [PATCH 23/23] x86/mm: Opt in to IRQs-off activate_mm() Date: Sat, 8 Jan 2022 08:44:08 -0800 Message-Id: <69c7d711f240cfec23e6024e940d31af2990db36.1641659630.git.luto@kernel.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: References: MIME-Version: 1.0 X-Stat-Signature: yp4i6ufqebqoyuhokmwut7dqgjkfqrid X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 4E374A0009 Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PGG3iDU+; spf=pass (imf25.hostedemail.com: domain of luto@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=luto@kernel.org; dmarc=pass (policy=none) header.from=kernel.org X-HE-Tag: 1641660285-291652 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: We gain nothing by having the core code enable IRQs right before calling activate_mm() only for us to turn them right back off again in switch_mm(). This will save a few cycles, so execve() should be blazingly fast with this patch applied! Signed-off-by: Andy Lutomirski --- arch/x86/Kconfig | 1 + arch/x86/include/asm/mmu_context.h | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5060c38bf560..908a596619f2 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -119,6 +119,7 @@ config X86 select ARCH_WANT_LD_ORPHAN_WARN select ARCH_WANTS_THP_SWAP if X86_64 select ARCH_HAS_PARANOID_L1D_FLUSH + select ARCH_WANT_IRQS_OFF_ACTIVATE_MM select BUILDTIME_TABLE_SORT select CLKEVT_I8253 select CLOCKSOURCE_VALIDATE_LAST_CYCLE diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h index 2ca4fc4a8a0a..f028f1b68bc0 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h @@ -132,10 +132,10 @@ extern void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk); #define switch_mm_irqs_off switch_mm_irqs_off -#define activate_mm(prev, next) \ -do { \ - paravirt_activate_mm((prev), (next)); \ - switch_mm((prev), (next), NULL); \ +#define activate_mm(prev, next) \ +do { \ + paravirt_activate_mm((prev), (next)); \ + switch_mm_irqs_off((prev), (next), NULL); \ } while (0); #ifdef CONFIG_X86_32