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 CFB2CC021B8 for ; Tue, 4 Mar 2025 16:19:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 486C56B0082; Tue, 4 Mar 2025 11:19:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 437066B0089; Tue, 4 Mar 2025 11:19:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 325FB6B008A; Tue, 4 Mar 2025 11:19:39 -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 157E86B0082 for ; Tue, 4 Mar 2025 11:19:39 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A7C56B0D51 for ; Tue, 4 Mar 2025 16:19:38 +0000 (UTC) X-FDA: 83184379236.07.C70931E Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by imf05.hostedemail.com (Postfix) with ESMTP id 7B6C7100005 for ; Tue, 4 Mar 2025 16:19:36 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=alien8.de header.s=alien8 header.b=C3ukYSEX; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf05.hostedemail.com: domain of bp@alien8.de designates 65.109.113.108 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741105177; a=rsa-sha256; cv=none; b=QwyNYnqSufUaAb86dTR7nRsCRUlY7QTBdu5aePx2DlaDfZ7+ntWOcjZFXJwhB7dD9EOErN lyj/SDfjGdxeJtUm/yP2w9B3g2jhPPSFnN2/hcncYEWR/31lsZQQcxfFNrL54o3GD6KXvR yeRrw/IAKDzP7f+RfcMM3hpy82xREac= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=alien8.de header.s=alien8 header.b=C3ukYSEX; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf05.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=1741105177; 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=tTPraD/2IkvxED+KlWLuIIiqPJz+rVst3iYy14q2FMo=; b=pCEPIdOaKvpeqroMCM/szviJq/iqh34tN3UPKImncTrIwp8Qx9DHkYuLjA7IpphF+24LLZ CmSTREWZUFPgBNmLZL9pHaj+AxsnpTqs1olmLeYZJ6bWTqtYhjK/v2IG2PSQrJX28iw1tJ x8qkbTTJHilR1x2jsnA/VAy/AivlNxM= Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 74F8840E015E; Tue, 4 Mar 2025 16:19:30 +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 P5fGbP63a4RC; Tue, 4 Mar 2025 16:19:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1741105165; bh=tTPraD/2IkvxED+KlWLuIIiqPJz+rVst3iYy14q2FMo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=C3ukYSEXDjWqplXbxA5vfpYYc+aJWgHeM7JsgDFrfryALviCV3ZjQ6x36EoLPzfoT vPindXjdoOekME5+igV8pTAVaLuTWI1XQDzgj0Dn2XeYfmzJiD2+vGuyBQwuUdrO4h UXRuMhfPGE3Etje+qgiAO76g5FSC/qaxaZ8s4sfAvP4cZxL6F1KqpxtlSRPQx9lZqy AvqPes7+sbz3CH8aoBFZvVYvFsHeflJigAra1vyvRGN6ZKT8H6Ex9eDJRLyE259WjC MTTqybqBFZfsw+cHnI9U5/c+IO+ALCCcGUEALr76gXx78vKZadhBIiHPpYFGDlI3AZ 3RHcpeCMdvl/3n+8V1ZNVUdHhTzPoi9tMucrGTqOUC4i1a2wtqZw/uiE3771RJs9QQ nz15Kp1m/oCV3C58N0NItVsuToEJidXJslWvfL5bSetGK560e2puPLUZkuS2L/IWv3 XYItMZzcZxOpStUr0ET4ZAzwtZV+yaADVuEEP+OkZP8Pitezs/bv50QRhMTQw8N+pL 7dpAWP9LfCnKuPh4IlX/N9r1jFdc/IH9WlQ32J+b/d+Ik0CqnlBV3P8CRmPyxF3JKU 8m75EUrlfCeX2pUkVBYHkV4cfPUkjr7hcUyWRU3pDgVGDWFOGt7lFRKVHEtqqV6RSW t3Ttm2LDrAMR+uuL3T2YRbtA= 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 68C4340E015D; Tue, 4 Mar 2025 16:19:07 +0000 (UTC) Date: Tue, 4 Mar 2025 17:19:01 +0100 From: Borislav Petkov To: Dave Hansen Cc: Rik van Riel , 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 03/13] x86/mm: add INVLPGB support code Message-ID: <20250304161901.GCZ8cn9d252LTzThpI@fat_crate.local> References: <20250226030129.530345-1-riel@surriel.com> <20250226030129.530345-4-riel@surriel.com> <20250228194734.GGZ8IS1iFVpPzmEyYl@fat_crate.local> <30c721e0-338d-4172-989c-5226d584bcbc@intel.com> <34b80474-a309-493b-81e9-3a7d4de8a369@intel.com> <20250304110032.GEZ8bdUOg2WLUrhMcm@fat_crate.local> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 7B6C7100005 X-Stat-Signature: xzya37gzi8ofqqn1bimoiqz1dfpgy8pm X-HE-Tag: 1741105176-942002 X-HE-Meta: U2FsdGVkX18Huaku1+7kgKIE3+yaPFGU9+WVqIJ2H4jjjDp6NKzYIo7xIpDdQ6RQMOB84ZqokGx8X6D/dwkent4NiCSwpFHaxXt++l1zJEMcZb/aSuO/KdCv3kadoz4YQvVqfhYlD5kSqGNji4JIIAdqGsGIOfblarZFvUKcq39Nw11gOLOMQISk8s+hUGdq3qH8xkn3iyUIZ/CITdIg0QTG7MlrFhncrTy9KYwLGxANyFxDe0fThzl1u2Mwyi7BeLnuLCHPGvCMIJJjH9UrITX6SQOUTlG43sCY2ta887fzxz3IGJkw2Ot9MQfes/uPNf3v1SB6f3rFspHtHGRmV8LCeeVXA5zzNBO86l7nARVVqFBZvfE8P73QSQSW0e68BRzACPHHr87E/P8+j0O8YPdg9s7iOjVbr9F403/+/Rcukoxt3zq67gdwOBI2IRYH0V4iEsQhjO3by76f2mE0xQYnTsb3Jl3YFV8ZOV4+AcvZqF1VTGwNj7jv1bu4Qy0jcHTdql6fa2nr0Pb/TyGyEDKhes7IqEiVNmjcRJM4hQBr23bBcHJMPn0ccfnoxw2wNbElUxMjVhgEowc8fXY0gSWySRX7j2A58qkat6wCkw9awjGypaxGjBOfJvjxHw52l69jAeJp1JxO8AupViYrvtw4n296yFt6RM52THW1CSc4lr6+n8NvCAmYUveI9MOXH+Y95Bmzg+9tGtoirQlbHjomj+nR+y4l41VmGPE1DxArpcWhUY5Lin0OaR9te51zeEYzkvy04yWZu3gGRU4pZHIU/v9XRnoegJJssDV2z299MLvvbjyfVlbEtpHUvjr/WOhjJ+kfyqTRjcyWBjAIcgVffndrVrg/vO78ipXfWk4U1bCJxnuGwvJ/YIwG6e44O1g0QcagyvtWzQC024j+DNFfQyrIHqpywr5m4ajdT1B/aIVbkBlBMrbHmK7jdQ3XnDV67wawylrZM3IN3pu /BYaU9G1 m1deINOKx0yifTI2cSveUlCTJU57H8fpGSAkz01mzAJrGjVnaF5JWeIpjDEYnDUseYskA4MFDuNTV+9ZiERpzIRRSf/gOxOaiOiHzqgNCSqGZOgD7Z0xiTzWpkG8ZTU68NsmxlUp+3MWXhioBOE42MGKS12GFBObb35cSYmtBdUTJiCDD7TERV6+03dd9HFDcDUHzaiPpagCsATRSoMv8DvRtilHpyHgj1rYu+qKACvUVqR5Oh1iE7ot9SmpJF7nKALoWfEUTsJa7ll+6Bttd6//CDYW8u7PmhKLeMvX0dd4pd85NF0gJ5fc6Hkhxn1i7GiF/JdWwJ9p2qez3MugNDfrh4Q== 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, Mar 04, 2025 at 07:10:13AM -0800, Dave Hansen wrote: > So, we could have the enum be totally divorced from the hardware type: > > NO_STRIDE, > PTE_STRIDE, > PMD_STRIDE How about we completely hide that NO_STRIDE thing and do a __invlpgb_all() "sub-helper" which is basically telling you it is invalidating all kinds of TLB entries and stride does not apply there: --- diff --git a/arch/x86/include/asm/tlb.h b/arch/x86/include/asm/tlb.h index e8561a846754..361b3dde2656 100644 --- a/arch/x86/include/asm/tlb.h +++ b/arch/x86/include/asm/tlb.h @@ -66,6 +66,12 @@ static inline void __invlpgb(unsigned long asid, unsigned long pcid, asm volatile(".byte 0x0f, 0x01, 0xfe" :: "a" (rax), "c" (ecx), "d" (edx)); } +static inline void __invlpgb_all(unsigned long asid, unsigned long pcid, + unsigned long addr, u16 nr_pages, u8 flags) +{ + __invlpgb(asid, pcid, addr, nr_pages, 0, flags); +} + static inline void __tlbsync(void) { /* @@ -84,6 +90,8 @@ static inline void __tlbsync(void) static inline void __invlpgb(unsigned long asid, unsigned long pcid, unsigned long addr, u16 nr_pages, enum addr_stride s, u8 flags) { } +static inline void __invlpgb_all(unsigned long asid, unsigned long pcid, + unsigned long addr, u16 nr_pages, u8 flags) { } static inline void __tlbsync(void) { } #endif @@ -121,7 +129,7 @@ static inline void __invlpgb_flush_user_nr_nosync(unsigned long pcid, /* Flush all mappings for a given PCID, not including globals. */ static inline void __invlpgb_flush_single_pcid_nosync(unsigned long pcid) { - __invlpgb(0, pcid, 0, 1, PTE_STRIDE, INVLPGB_FLAG_PCID); + __invlpgb_all(0, pcid, 0, 1, INVLPGB_FLAG_PCID); } /* Flush all mappings, including globals, for all PCIDs. */ @@ -134,7 +142,7 @@ static inline void invlpgb_flush_all(void) * as it is cheaper. */ guard(preempt)(); - __invlpgb(0, 0, 0, 1, PTE_STRIDE, INVLPGB_FLAG_INCLUDE_GLOBAL); + __invlpgb_all(0, 0, 0, 1, INVLPGB_FLAG_INCLUDE_GLOBAL); __tlbsync(); } @@ -148,7 +156,7 @@ static inline void __invlpgb_flush_addr_nosync(unsigned long addr, u16 nr) static inline void invlpgb_flush_all_nonglobals(void) { guard(preempt)(); - __invlpgb(0, 0, 0, 1, PTE_STRIDE, INVLPGB_MODE_ALL_NONGLOBALS); + __invlpgb_all(0, 0, 0, 1, INVLPGB_MODE_ALL_NONGLOBALS); __tlbsync(); } #endif /* _ASM_X86_TLB_H */ -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette