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 6A95BC021B2 for ; Tue, 25 Feb 2025 19:18:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CF64628000A; Tue, 25 Feb 2025 14:18:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C7F2B280002; Tue, 25 Feb 2025 14:18:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD1FB28000A; Tue, 25 Feb 2025 14:18:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8C747280002 for ; Tue, 25 Feb 2025 14:18:52 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 324BAC01C2 for ; Tue, 25 Feb 2025 19:18:52 +0000 (UTC) X-FDA: 83159429304.11.503B6A1 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf01.hostedemail.com (Postfix) with ESMTP id 7A11E40009 for ; Tue, 25 Feb 2025 19:18:49 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=none; spf=pass (imf01.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740511129; h=from:from:sender: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N/QLu64beISzCY9ZkA+fyUgxCbyAhQ6AUuQSVimc3O0=; b=REgzWjU9Kt+Zz96Fvoy3TSaW9f823THOwLNHGwHQueK9U3mOK9x//kaw5uNiBMRoVW0Dgq JuiEqQzhqnL5B2U2bRb8ny/RDwx146Ac2lN+JYPS+tfQh6GnQOOTf1spBsc1SQuv5CZ8TE aiUSn/+TMCrcguzvFOaCiAUYvUW7Q5A= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=none; spf=pass (imf01.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740511129; a=rsa-sha256; cv=none; b=bLs24rWdRzI+li8UNU39sedONKha7OHCt0tX9OoXl4SXt0oAOZsAYP1GZVmNJWHH0i0Jlc X0vnbR1crLoIxL1sUViAZ0WA6XD+C/2p+UWoOUHGDOdcqcJ3kxYZ4N3vMOF/JY/oeDG23/ B8wODoUA2Jxlcxvoc8CR/gJcWAb7hM4= Received: from fangorn.home.surriel.com ([10.0.13.7]) by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.97.1) (envelope-from ) id 1tn0Qi-0000000062h-3AxP; Tue, 25 Feb 2025 14:17:20 -0500 Message-ID: <7c2baf33265444089ab780848de29a1336a9a4cc.camel@surriel.com> Subject: Re: [PATCH v13 06/14] x86/mm: use broadcast TLB flushing for page reclaim TLB flushing From: Rik van Riel To: Borislav Petkov 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 Date: Tue, 25 Feb 2025 14:17:20 -0500 In-Reply-To: <20250224132711.GHZ7xzr0vdhva3-TvK@fat_crate.local> References: <20250223194943.3518952-1-riel@surriel.com> <20250223194943.3518952-7-riel@surriel.com> <20250224132711.GHZ7xzr0vdhva3-TvK@fat_crate.local> Autocrypt: addr=riel@surriel.com; prefer-encrypt=mutual; keydata=mQENBFIt3aUBCADCK0LicyCYyMa0E1lodCDUBf6G+6C5UXKG1jEYwQu49cc/gUBTTk33A eo2hjn4JinVaPF3zfZprnKMEGGv4dHvEOCPWiNhlz5RtqH3SKJllq2dpeMS9RqbMvDA36rlJIIo47 Z/nl6IA8MDhSqyqdnTY8z7LnQHqq16jAqwo7Ll9qALXz4yG1ZdSCmo80VPetBZZPw7WMjo+1hByv/ lvdFnLfiQ52tayuuC1r9x2qZ/SYWd2M4p/f5CLmvG9UcnkbYFsKWz8bwOBWKg1PQcaYHLx06sHGdY dIDaeVvkIfMFwAprSo5EFU+aes2VB2ZjugOTbkkW2aPSWTRsBhPHhV6dABEBAAG0HlJpayB2YW4gU mllbCA8cmllbEByZWRoYXQuY29tPokBHwQwAQIACQUCW5LcVgIdIAAKCRDOed6ShMTeg05SB/986o gEgdq4byrtaBQKFg5LWfd8e+h+QzLOg/T8mSS3dJzFXe5JBOfvYg7Bj47xXi9I5sM+I9Lu9+1XVb/ r2rGJrU1DwA09TnmyFtK76bgMF0sBEh1ECILYNQTEIemzNFwOWLZZlEhZFRJsZyX+mtEp/WQIygHV WjwuP69VJw+fPQvLOGn4j8W9QXuvhha7u1QJ7mYx4dLGHrZlHdwDsqpvWsW+3rsIqs1BBe5/Itz9o 6y9gLNtQzwmSDioV8KhF85VmYInslhv5tUtMEppfdTLyX4SUKh8ftNIVmH9mXyRCZclSoa6IMd635 Jq1Pj2/Lp64tOzSvN5Y9zaiCc5FucXtB9SaWsgdmFuIFJpZWwgPHJpZWxAc3VycmllbC5jb20+iQE +BBMBAgAoBQJSLd2lAhsjBQkSzAMABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDOed6ShMTe g4PpB/0ZivKYFt0LaB22ssWUrBoeNWCP1NY/lkq2QbPhR3agLB7ZXI97PF2z/5QD9Fuy/FD/jddPx KRTvFCtHcEzTOcFjBmf52uqgt3U40H9GM++0IM0yHusd9EzlaWsbp09vsAV2DwdqS69x9RPbvE/Ne fO5subhocH76okcF/aQiQ+oj2j6LJZGBJBVigOHg+4zyzdDgKM+jp0bvDI51KQ4XfxV593OhvkS3z 3FPx0CE7l62WhWrieHyBblqvkTYgJ6dq4bsYpqxxGJOkQ47WpEUx6onH+rImWmPJbSYGhwBzTo0Mm G1Nb1qGPG+mTrSmJjDRxrwf1zjmYqQreWVSFEt26tBpSaWsgdmFuIFJpZWwgPHJpZWxAZmIuY29tP okBPgQTAQIAKAUCW5LbiAIbIwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQznneko TE3oOUEQgAsrGxjTC1bGtZyuvyQPcXclap11Ogib6rQywGYu6/Mnkbd6hbyY3wpdyQii/cas2S44N cQj8HkGv91JLVE24/Wt0gITPCH3rLVJJDGQxprHTVDs1t1RAbsbp0XTksZPCNWDGYIBo2aHDwErhI omYQ0Xluo1WBtH/UmHgirHvclsou1Ks9jyTxiPyUKRfae7GNOFiX99+ZlB27P3t8CjtSO831Ij0Ip QrfooZ21YVlUKw0Wy6Ll8EyefyrEYSh8KTm8dQj4O7xxvdg865TLeLpho5PwDRF+/mR3qi8CdGbkE c4pYZQO8UDXUN4S+pe0aTeTqlYw8rRHWF9TnvtpcNzZw== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.54.3 (3.54.3-1.fc41) MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 7A11E40009 X-Stat-Signature: mjxemqtw47dano834o8whak858mcgmue X-Rspam-User: X-HE-Tag: 1740511129-485086 X-HE-Meta: U2FsdGVkX181iaUZ1ihSTAjw6/jteU4mkPkygaNK0bZ2L8o5wLHyxt+jtX2VINeZBpbqLx+czOWtxEo/qmVQ/4jOAD4VSKbb2XehzSOqM22v11//3qCo31TgOm1ku0SdmZWgyQDsDsnIngD0xMWmi+SdJpfgz0MM66v6HMEf8NsCpmPxCXnVUjFYRU8EAVqzqUiYkG1He768mBX00L0V2arwUR9hOF2YJigV7cjjJwMjwM2Ka7jZmvyMpMeqx7DZQD2DLOSNNLq7RqiPC/Y3TUUr1fs5Mnzligl40JMLtL+h4kedLElv1yEko9PyM54AYIjr2mEwCTzYgaeZExiDd2a1XKhb58DuoiZ+WBHXYdXoP7N4h4PUF4DWvdn/BJcmBB14KtvOzeY/Uetdrpzd8WAOSz2WQJCEQ3XoXTgAtMGW0SUJazeOTJ10c/L12VLuuC88qXz2B3N+5BcWzEpSGpuApCUvjat4pbEGgrOUhIozOZfxjwdf9eYNk2sFcwhekMbcr4DsvyIiH/3Aya1Ia332pib5WIsVk4ID02MFKJu9JmbQjuN4vdE5ARceJe+MrTtrMBTd8PVl7Jr/33k+cPY94VT7x4p5HFj+SJ0ssDoewLQsQ2SvPl9iZkX3i+musMw5kUx/2iQtZXVnlBufVYLksS1xSdi6FTdqSoEMP4t6RIetY0dXr5aSSxHeJpPPO/LTDlB58Xm2xLyYbPDAW4r3QeKRE5Uh0y0ytQiQeCzNAQIWZBu1lNLmLEyHYvwOTIaGc7HMSFW2MsMm/Ln/eyT2OCyvx80C4gAeKclhKQdzK2DwXlAEqJ7/KjJv4H8f/KEyXWA3JVWUaITRarxkNv8d37d7b03Pbv5kEAEGLyaVm0i8XYYlweeCeF4HMjgiy3F7doZ0sFzVWJnYs5R6ViJM5K/gFO4IrgEiBYWyUt0ZnSTlilhGmm4w9y/L56fipdlwF8PxoSFlRDBhG+Z GTzZDVa7 Oh1lwxvcw3G+5QYT8yYm+TO1qmb1zNOPX/hVBgmjQG1K5D/5kHa4HWbUJegkeObbavQcSTytgnG74TG4DbrVootzYxpJyPdPVBXp7BovsqLMawp44uampWDY2foCpgijlj+YAsvzEj7eMGfUI9HExWpePUeyKeWQ4aPnr+qEFJx+s5jBeiTEjtKTWqOECQLsaLM/h0qebvSs+OViOwrXO1C1DLuckTFpIUTyzpU3O9D6xTlpKjsjzB3LddDGp6T+M1YiaMQuwNgsqmV9jRgVHgP5cHmizQhfwhd03iB/KwSW1EZkTFfHsVH9ddksLjCVFchUhGjpPmbPj9LS9EHcECB+TuQ== 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 Mon, 2025-02-24 at 14:27 +0100, Borislav Petkov wrote: > On Sun, Feb 23, 2025 at 02:48:56PM -0500, Rik van Riel wrote: > >=20 > > +++ b/arch/x86/mm/tlb.c > > @@ -1326,7 +1326,9 @@ void arch_tlbbatch_flush(struct > > arch_tlbflush_unmap_batch *batch) > > =C2=A0 * a local TLB flush is needed. Optimize this use-case by > > calling > > =C2=A0 * flush_tlb_func_local() directly in this case. > > =C2=A0 */ > > - if (cpumask_any_but(&batch->cpumask, cpu) < nr_cpu_ids) { > > + if (cpu_feature_enabled(X86_FEATURE_INVLPGB)) { > > + invlpgb_flush_all_nonglobals(); >=20 > I'm confused. The docs say rAX needs to be 0x6 to do "Invalidate all > TLB > entries that match {ASID, PCID} excluding Global". But you're calling > INVLPGB > with rAX=3D=3D0 and the APM doesn't say what this does. >=20 > I'm guessing you want this to mean invalidate all non-globals for any > ASID and > PCID. So I muss be missing the place in the docs where it says so... You are right that it does not explicitly say it. However, it does strongly hint at it: "The TLB control field is specified in rAX[5:0]. It determines which components of the address (VA, PCID, ASID) are valid for comparison in the TLB and whether to include global entries in=C2=A0 the invalidation process. ... rAX[3:0] provides for various types of invalidations. A few=C2=A0 examples are listed in the following table, but all values=C2=A0 are legal."=20 This text, to me, suggests we can filter the TLB invalidations by some combination of virtual address, PCID, or ASID, or not filter by any of those keys, and invalidate them all. Who do we need to ask to confirm that reading? --=20 All Rights Reversed.