From mboxrd@z Thu Jan 1 00:00:00 1970 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 403B4C02199 for ; Fri, 7 Feb 2025 16:03:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A481D6B0088; Fri, 7 Feb 2025 11:03:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D11F6B0089; Fri, 7 Feb 2025 11:03:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 84A5C280001; Fri, 7 Feb 2025 11:03:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 657AE6B0088 for ; Fri, 7 Feb 2025 11:03:24 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 746DD1A1C9A for ; Fri, 7 Feb 2025 16:03:18 +0000 (UTC) X-FDA: 83093618118.02.C9BBA4B Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf19.hostedemail.com (Postfix) with ESMTP id 9C7571A000C for ; Fri, 7 Feb 2025 16:03:16 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WSmLWqew; spf=pass (imf19.hostedemail.com: domain of jackmanb@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738944196; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MdDEU/QzTK0Yv60rlv7pPkEUhIKKBhNRZbHuip232OA=; b=yHFlXupZ8AoTE4FiRCSlx48+ukgrkmW5HaiDRVVaTTIiK/CtlAC86bAwZ4TNynyxF+6bZw +NizMKEl50k9ZI3fAzFDIcOy6RDdaMYdR6ykJsge8SNkmBHVoP0/zNqkl5YeJAUgH7LIGJ fKHKsw2/S1NBjZftUWrXniGPvYCF7vE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WSmLWqew; spf=pass (imf19.hostedemail.com: domain of jackmanb@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738944196; a=rsa-sha256; cv=none; b=CwDXQb9Cbv5tV2+yoc0WFLuv277hdifR+GJYhX5lnR5N8WT89PAKyuRiVciJrDnD2UeVEJ oKJ5Mp0AMt57Vt7upaY9vuID+yqhPVXY9aWhpFhRr1/uhxU5MjShtwi8Bc2tGby9TI8YCB MumS3K1bV/4XvzLUdzhzJeqXdhD4fkA= Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-467896541e1so273831cf.0 for ; Fri, 07 Feb 2025 08:03:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738944196; x=1739548996; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=MdDEU/QzTK0Yv60rlv7pPkEUhIKKBhNRZbHuip232OA=; b=WSmLWqewEbqqyIvkfHDqLkIL7RmbsIPp/aRK1bGNBpzK8PBqnp/oJXZlpTNQ0W2QOz sDPVOPuGqiXTSO1bBf62Xw4Jb7ePbaj/rsclTc2MQJkCJupcmxLxJkZi8MSDqqVXQqB0 tKPh0/ADvLSy+zm1qbiRc17ggyLbPQR9b7ltGd/Pf0xwEuupHeyxXfDlsiEOMWGZFmS/ KNCrb2o6H7f+GHcn5lx/LAByz0TrFOHs7+Oq/c1ra/ZBh67sHs8qJCZZnf5SQLijh/SK mSlZTVmBeccmoxglgkArPEmP4cTtoNoXVcz4X22wf13bFvNMbtDKpjnT3fmMdR+50Oua iNcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738944196; x=1739548996; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MdDEU/QzTK0Yv60rlv7pPkEUhIKKBhNRZbHuip232OA=; b=baVa1Tkm7TTBVBqJH/QidhmveE9Wk8wiVsaqiJWckHC35K1uAU5vonB7J0Q4iGFe1T a/kJ50dE9bVT7H/yJ4RcZSlESFfGJAUIxDoeBf8/1pADiA9Rjmhvk/Ibqtz9PmZ1EGrS 1mSw0DVS987hC3oSCeX0Qy43rP2nLKYfaOuUCRo1n7FZGKXZLLlFgeD15JksHXKw9/hG 96Pk5H6DTka36tR6NwG3TtndhmR5tzXQXF3iJnn0MiCHKR11pFzA9NMrYAMhzvNv02yK TNMyrrM4qCbITUTcDL5wReur/z9Y93MFvCriTjqZNiLTQil6TO8tHVcDeW1evM96ZxVB QTkA== X-Forwarded-Encrypted: i=1; AJvYcCWIOy0+PqrLKtI91yK6YE4GINwYuVpONX+vVasurTgxnqNo06Q/9KkCrlH15V/z5LUnQHXxhYsAlA==@kvack.org X-Gm-Message-State: AOJu0YytLoQHfpTRylYutWWDd4X2SWoyCZGUt/kZJwT+SRnMVT8cOBxT bvYakJNAXHPj9kPfsPMVqBdIuMNBDuQwhEqpbMoTWTgQcFw3MNwMIMuVU+DTzd87G9u2A47yIbB BHjq6nBlB7yxHZQIX+bRUltmlCqRI2auIL6JA X-Gm-Gg: ASbGnctaXO9Ty9GVcJjcntuRFZa2o39nmHe2rVDnTbg+xRd91DI1lJZKzrrWN/BOMuP yNienMEVrPySOKrwoHHp0ThnoKNPsH5Z9xrHBJJ/8h8ElEIT0LVic/aKZ1pU5sCoWYbpt1sMOTo FADuFByWblaMpmSp1hVBfxz5hHT7E= X-Google-Smtp-Source: AGHT+IGDyv0tdeFgXFK4+NXokpnrs/Ow3uJbgvKxbsWdPKX1+p9MQq8C8C9h8dofo0MMgYw3EfAQ2y0fXmepjUd7Zo8= X-Received: by 2002:a05:622a:613:b0:465:3d28:8c02 with SMTP id d75a77b69052e-471685b49e9mr3654221cf.26.1738944195478; Fri, 07 Feb 2025 08:03:15 -0800 (PST) MIME-Version: 1.0 References: <20250206044346.3810242-1-riel@surriel.com> <20250206044346.3810242-7-riel@surriel.com> In-Reply-To: <20250206044346.3810242-7-riel@surriel.com> From: Brendan Jackman Date: Fri, 7 Feb 2025 17:03:04 +0100 X-Gm-Features: AWEUYZkA3hse0G5JQpW_KHFyjXe2jABBlo7SQc0ZzAcOAMPI-l3KDCePqFxbKzA Message-ID: Subject: Re: [PATCH v9 06/12] x86/mm: use INVLPGB for kernel TLB flushes To: Rik van Riel Cc: x86@kernel.org, linux-kernel@vger.kernel.org, bp@alien8.de, peterz@infradead.org, dave.hansen@linux.intel.com, zhengqi.arch@bytedance.com, nadav.amit@gmail.com, thomas.lendacky@amd.com, kernel-team@meta.com, linux-mm@kvack.org, akpm@linux-foundation.org, jannh@google.com, mhklinux@outlook.com, andrew.cooper3@citrix.com, Manali Shukla Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9C7571A000C X-Stat-Signature: ogxjfs5zwfhocdq5554otmu93i3wzcdc X-Rspam-User: X-HE-Tag: 1738944196-968308 X-HE-Meta: U2FsdGVkX1/DoZ9GBpICTZptFYeBraVCL+c5J1LV3KEG1pVj5NouLQpuTO2cwyGWGCVCpuUEfAZXmxd1864RvGLPFa47Usy+kufpMO6D+48IkTt6nE7qO7FqGfV7Dl3PjNW8ifz2EgEB3fOUhiRU/QNd5hyQAfA/DqzNVsVQW3rCM6lZGAyTjuK+BCh69QpLDWtpCLyISoA9uPbd6nEJ9l5m+iQI2HJgYwcZx5pIqt1l1xCn+ahqRlyPZt1tgQ3OIFwg9dPlDyT1El6/9QC7BETaNSGapoFzpaJPx8XIwAYhzZYIpXyAbcko1qvIu/QSYLssH9qwnoU4IbWEZlZzAtQ3KjT4jZRLA9n0sptoNu6PiweYc9paj44vdxSZVNzoan1zbz2QeqPkpkWD/F0LFpDx+D9zN0TUIphyyjO5x5MAQL5e6gnfKuYK3R0befToFgUSShQja6lrcGVpE/cca/gR8OnQKAIbcFQO8bFlSTQ3qnzXLOMDL+KrUtaj5TTb7GXwweL6bRT8da0OWYn4JTCCsPggEckWVR2uk2KKBpr0Z7P9quJ4ZmDGYQePl/FGztSxA9IEmfQrpUnkSBYE6C6pJ092nkYnSGiqDCf3Ycr8iRWCkTzVow7QgttXDE8BDN87mA0wafC2Va3wAJmDFGLnqPTqflV1kTVHRayQQNYnkrqbde5/QzNEcD7sRGnaZSAcuwYtz9oGN3Hh4gcESktY5YBFUmYnrTvLB5RJjChgMEyLHUo0C17eRT4OXyJAVhPdShBe8w3zj/1Mdw+1ZtwfgWYGfJTEUnJk2R+Ra3CYKZaKALq97aszo1uW0+0UQ/nnkkNLESKxVtzcIgGlzP2W5D/oyXHArcspn9Am7eaVx6yXfQBqeVEQNO1YuKmjeAM+tBtX2qR3kCEKHYcyCuJww5Fb/Lkw0tinWUP71zKoQMkz0d5jZ9xzheO3i8+OHRieM39HmTvQOpHcsMh 7Rqavn7z P7FStQBtjz7ytVENxjT6FDdMCxO73+BN0xvaoDevi+ylJlk08ygeIkxhpGDBUPXYQajp0izce2F9UhRGg3tpTVddzIzDDVGPv3mLYQFcZ7VH4xTjL2tzC4zI0WndMIwOFwxvz91/RSOBydinoRPN/O4FzczDXG6EOqNlEYn4Cl/D5EWLPoiugg+h5DxMjWlCfcAr2Z/V5nyjk7DZTZfIVFSoMLyq9bhh1tfKD8TCzV0OJcwbrdLLXA9KQ3DjyQs0J8u7vr0t2ZjSOyqYfDoiir8H8MOnd+9p+pXZa9RyHoRpFY/C6ClFAbE3uKz6csbSCPIiS4o+G9kovM/8= 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: List-Subscribe: List-Unsubscribe: On Thu, 6 Feb 2025 at 05:45, Rik van Riel wrote: > diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c > index 36939b104561..227e972b6fbc 100644 > --- a/arch/x86/mm/tlb.c > +++ b/arch/x86/mm/tlb.c > @@ -1086,6 +1086,30 @@ void flush_tlb_all(void) > on_each_cpu(do_flush_tlb_all, NULL, 1); > } > > +static bool broadcast_kernel_range_flush(struct flush_tlb_info *info) > +{ > + unsigned long addr; > + unsigned long nr; > + > + if (!IS_ENABLED(CONFIG_X86_BROADCAST_TLB_FLUSH)) > + return false; > + > + if (!cpu_feature_enabled(X86_FEATURE_INVLPGB)) > + return false; I think that first conditional can be shunted off into the header diff --git a/arch/x86/include/asm/disabled-features.h b/arch/x86/include/asm/disabled-features.h index c492bdc97b05..61376b4e4fa7 100644 --- a/arch/x86/include/asm/disabled-features.h +++ b/arch/x86/include/asm/disabled-features.h @@ -129,6 +129,12 @@ #define DISABLE_SEV_SNP (1 << (X86_FEATURE_SEV_SNP & 31)) #endif +#ifdef CONFIG_X86_BROADCAST_TLB_FLUSH +#define DISABLE_INVLPGB 0 +#else +#define DISABLE_INVLPGB (1 << (X86_FEATURE_INVLPGB & 31)) +#endif + /* * Make sure to add features to the correct mask */ @@ -146,7 +152,7 @@ #define DISABLED_MASK11 (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET| \ DISABLE_CALL_DEPTH_TRACKING|DISABLE_USER_SHSTK) #define DISABLED_MASK12 (DISABLE_FRED|DISABLE_LAM) -#define DISABLED_MASK13 0 +#define DISABLED_MASK13 (DISABLE_INVLPGB) #define DISABLED_MASK14 0 #define DISABLED_MASK15 0 #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP| \ diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 227e972b6fbc..b8a8665359a2 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -1091,9 +1091,6 @@ static bool broadcast_kernel_range_flush(struct flush_tlb_info *info) unsigned long addr; unsigned long nr; - if (!IS_ENABLED(CONFIG_X86_BROADCAST_TLB_FLUSH)) - return false; - if (!cpu_feature_enabled(X86_FEATURE_INVLPGB)) return false; With !CPU_SUP_AMD and the above, broadcast_kernel_range_flush disappears from tlb.o. (Caveat - I didn't actually read the disasm I just made it noinline and checked the call disappeared). It's actually more lines of code but now they're off in a boilerplate header and it's consistent with the other flags that do this.