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 4703BC282C5 for ; Fri, 28 Feb 2025 22:21:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B51DB280002; Fri, 28 Feb 2025 17:21:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ADA97280001; Fri, 28 Feb 2025 17:21:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97B1E280002; Fri, 28 Feb 2025 17:21:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7612E280001 for ; Fri, 28 Feb 2025 17:21:04 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 27048B6872 for ; Fri, 28 Feb 2025 22:21:04 +0000 (UTC) X-FDA: 83170774848.03.B9F0E68 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by imf27.hostedemail.com (Postfix) with ESMTP id 136E14000E for ; Fri, 28 Feb 2025 22:21:01 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=alien8.de header.s=alien8 header.b=jxtBK+Wz; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf27.hostedemail.com: domain of bp@alien8.de designates 65.109.113.108 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740781262; 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=5/+eZ8tc2g0nlcFt/aAYA8NlZPwIBAqq3po6qJUjO54=; b=dYVdkuyYCEDlAV/DyJa8KB/JQw/V8GWby4jJN0pdAX43BnJr9IyA7N5Bo3cKv85kqSIWZJ dVFFCI57TU4Qxe0LEK4gxO8cuSm03U+sMy0XHHn7vfcNrKnXK716tKQvBm/ztfxt8f+SsI efrFbyl0cn9S/WScfHoNGKOf043C7g8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740781262; a=rsa-sha256; cv=none; b=IoLL8rXVI+knj5dwdCAure5YtgYvQqE3Z7yEuDvolMNafntQe/SfAkGTRe4uUtKJM9nmPG /YdJj1PLGhmSQ/hlzYiJZfusoK13Su34uWClpjGnDIN5MpzySpevMr3FhtYvGf8oc5OWAu s/jG3h64s+XwG6blE5aLcVBTpoezH4Q= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=alien8.de header.s=alien8 header.b=jxtBK+Wz; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf27.hostedemail.com: domain of bp@alien8.de designates 65.109.113.108 as permitted sender) smtp.mailfrom=bp@alien8.de Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 581FF40E015E; Fri, 28 Feb 2025 22:20:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id iuAzjFlbE2Pw; Fri, 28 Feb 2025 22:20:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1740781254; bh=5/+eZ8tc2g0nlcFt/aAYA8NlZPwIBAqq3po6qJUjO54=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=jxtBK+WzeX8MJ51p8u3Omy0c39Ad+zgo4oQVFdZEZ+327HP4+U+H5KNG1XgcHL/nO vLStCZz1d275xPxHZMeFHbogMfnepbgn754xywcm5RgOJPNkPBdpq3ouhIVm7+hWS3 p7Njt/G6rKNCMEos7mGH2FYKhLWYlPHGsOMU2EELp+4+FSw7tLdtdDv/t8cXkcGCSI JBG/ciAgHw4AIGoaynSQ+FimM8IwOT1A5D0QBaOhzjJQghf8odSLKoCufYs9QrGONJ QIC8Xrs6+bFa+w4jS7HrCMeikxB2cTGRgJ1N8fETZxw/A9Ttek8fYIkDbaPHiLegLZ Hs8fbcCLpwy+kxilEvrFjV+3Sph14T5eNGTWGU6XsJOlb8XDe163dsCt08DoVdF04O lMa0JgjnxhAqP6WcSZBbmWnR2hs8vF1i/IId1Z12DMXfElg25uoRCMdQWKoLkIDArp rS+R3uAeAjjhm//9IUcXICcL0w3hsEYM1fkMi/FXfWq2DPBTJl2SrFsp702nwozZPU uzeADin0KOZK6maG84ApVH/pqqFZBVsAENQ93a1b3TJlyQafODhUOYZYgr2NTIls3d LCOxq2zZFUKGt4lKgGuoQzkaICsJYmavkEP6fk/o8HirhwvxgdWrh0a9p1A6oxCZ0S tiOcBqZsNOuHOcgZsYnVGFUY= Received: from zn.tnic (pd95303ce.dip0.t-ipconnect.de [217.83.3.206]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 9289A40E0028; Fri, 28 Feb 2025 22:20:37 +0000 (UTC) Date: Fri, 28 Feb 2025 23:20:32 +0100 From: Borislav Petkov To: Rik van Riel Cc: x86@kernel.org, linux-kernel@vger.kernel.org, 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, jackmanb@google.com, jannh@google.com, mhklinux@outlook.com, andrew.cooper3@citrix.com, Manali.Shukla@amd.com, mingo@kernel.org Subject: Re: [PATCH v14 05/13] x86/mm: use INVLPGB in flush_tlb_all Message-ID: <20250228222032.GHZ8I2sNGMZGTjNPxI@fat_crate.local> References: <20250226030129.530345-1-riel@surriel.com> <20250226030129.530345-6-riel@surriel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250226030129.530345-6-riel@surriel.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 136E14000E X-Stat-Signature: ng43xzn4t1sksr3j3w648jpgnjc75twr X-HE-Tag: 1740781261-73453 X-HE-Meta: U2FsdGVkX1/VAvRxEbPpsegyJf84RV9A5ZgzdxXYtCiH3zH3RHmGGqbBPp+vzqMt+zCqqr6v2PUOX5fG5En3h/zF4L2C+dv+aQ/FZ5dPV0Ns8MYGVB6f5ySQqX6Ro4cgVwXRJ6DKqBNitDZVi2lS6lg79a5aC7W8Dk2dXT5mawFy7DSQIjQby4L+l56Jzsh3dsRUYlFVq+3caoyf0yy0HcPp1fTBFsFmS4utxni0Une+fCN2uyr1qIrh9yvrnnAFCuwNsm/KPrj7iW3uy4GEraup5Zt1z7BkoG9QQMVi4Vt+WTXDFchmPNQnlF1i4RFo/fyo3jhluYs1syykh9R3s8LOs7JA7IX92eVVO8bnQ1mdmmUdoU0bkv820ocGJKhKfmuMaHiMqji1ujeW9maDOO/WwwXsG4vO0CfxaU7AE5CqW+DKkTg6Y+iPJQRwpzP7aXgAdMg1nNzT+lMNm2SuzIT6M7HSr4rXc8PArqixsQvvxS8PjJz6tI2xOhSju3d81vo/iQYiN6sh0LNPyake/3zxSBGqQfNE53/nvwXkpWXhRNp6hoxvSphrkO2nTgzPTpnde7ktGbvBgZPrKHsbpGd2oBOYWRAuNJeJsfsEkFBR8tEehA/QqPQfyUiYrkV0Va0Yla/Fhtluy1Sxr6T0YWZw0xGFEmLl2eaRya2EWD7RXB4bKNH2h0N3gmrXRUjNANYJQiRFbKGj7ucKhgyJQDvLel28j322FsBcrP3QiwOaKBT+/YQeXBip0ZvEJNvr82BFdC8cz8rn5vWw/O6g53s5X/ntvexLRoz8yNWvwV4lwNucZLVge2O1D852ihXg4bW0+Z+y5khP7ZYtc7d2VtKCHQAadWywEtDmVqkt9IGP6hQWCbUR8T8WdlZTtQJZzrOUI4gK8w+LaZ5bZqY1hzx8sDjCx11+6WJhabCspdeWJqyw7o/OKQHdysd9T+VBafOKQ80PwXXR3fPLzrS fXqn3NQA pH2i0T/zdgpSUba+vlqJ6HcAsOOYl/hcR+8HhTfLDr5Q/BdgB9HjEXHA9TeSx8wY8O1I/HX25TJVjfAuUz9zNzXqKUDR23y4m38h2dcIqWtH1076MiW/e30VFSbo0vzLhoY62ux6DmZ6Vajw54RfpYpul7xrm87HKVIUK1hwMg/ATI/rilOmHL0kuNHjywIaTaCoJaiMENuytSLB9zMlM5nzP3dHXpX3fCCwodqv0aJJaLJwMlOVDd4r0CCPL9EXvPW7QRlR/aMzvhUmhJmt/+z/J024BvIP4iqCz5FgtclAlaWGhbjCO28J1P4QLhne3TcYlnlF6oU3pu5QRtTPOi9pLlmp5uYBKdr8V0hu28EDZXyxjtLN654lZg2+kdAVkITLt0AUOdwbX45/dPMDQBiYR3yQNCSv1pvqKgDGQCVXhJL1Ij+FgBSXzom3/Cj5Nd0ZhZk1nw4iyi99U3TnALa0SnHqV+JrD+hPw57FO16QRwxxu/UpNWQsxeqb+t0MpFJQ85B5nYMGimsQ= 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 Tue, Feb 25, 2025 at 10:00:40PM -0500, Rik van Riel wrote: > The flush_tlb_all() function is not used a whole lot, but we might > as well use broadcast TLB flushing there, too. > > Signed-off-by: Rik van Riel > Tested-by: Manali Shukla > Tested-by: Brendan Jackman > Tested-by: Michael Kelley > --- > arch/x86/mm/tlb.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) Edits ontop: --- /tmp/current.patch 2025-02-28 23:18:51.670490799 +0100 +++ /tmp/0001-x86-mm-Use-INVLPGB-in-flush_tlb_all.patch 2025-02-28 23:17:48.590844991 +0100 @@ -1,22 +1,23 @@ +From 5bdf59c0589b71328bd340ea48a00917def62dc0 Mon Sep 17 00:00:00 2001 From: Rik van Riel Date: Tue, 25 Feb 2025 22:00:40 -0500 -Subject: x86/mm: Use INVLPGB in flush_tlb_all +Subject: [PATCH] x86/mm: Use INVLPGB in flush_tlb_all() -The flush_tlb_all() function is not used a whole lot, but we might -as well use broadcast TLB flushing there, too. +The flush_tlb_all() function is not used a whole lot, but it might as +well use broadcast TLB flushing there, too. + + [ bp: Massage, restore balanced if-else branches in the function, + comment some. ] Signed-off-by: Rik van Riel Signed-off-by: Borislav Petkov (AMD) -Tested-by: Manali Shukla -Tested-by: Brendan Jackman -Tested-by: Michael Kelley Link: https://lore.kernel.org/r/20250226030129.530345-6-riel@surriel.com --- - arch/x86/mm/tlb.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) + arch/x86/mm/tlb.c | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c -index f44a03bca41c..a6cd61d5f423 100644 +index 5c44b94ad5af..f49627e02311 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -1064,7 +1064,6 @@ void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, @@ -27,22 +28,29 @@ index f44a03bca41c..a6cd61d5f423 100644 static void do_flush_tlb_all(void *info) { count_vm_tlb_event(NR_TLB_REMOTE_FLUSH_RECEIVED); -@@ -1074,6 +1073,15 @@ static void do_flush_tlb_all(void *info) +@@ -1074,7 +1073,21 @@ static void do_flush_tlb_all(void *info) void flush_tlb_all(void) { count_vm_tlb_event(NR_TLB_REMOTE_FLUSH); +- on_each_cpu(do_flush_tlb_all, NULL, 1); + + /* First try (faster) hardware-assisted TLB invalidation. */ + if (cpu_feature_enabled(X86_FEATURE_INVLPGB)) { ++ /* ++ * TLBSYNC at the end needs to make sure all flushes done ++ * on the current CPU have been executed system-wide. ++ * Therefore, make sure nothing gets migrated ++ * in-between but disable preemption as it is cheaper. ++ */ + guard(preempt)(); + invlpgb_flush_all(); -+ return; ++ } else { ++ /* Fall back to the IPI-based invalidation. */ ++ on_each_cpu(do_flush_tlb_all, NULL, 1); + } -+ -+ /* Fall back to the IPI-based invalidation. */ - on_each_cpu(do_flush_tlb_all, NULL, 1); } + /* Flush an arbitrarily large range of memory with INVLPGB. */ -- -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette