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 90EEFC02180 for ; Mon, 13 Jan 2025 21:12:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1B16B6B0098; Mon, 13 Jan 2025 16:12:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 146B66B009C; Mon, 13 Jan 2025 16:12:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 028626B009A; Mon, 13 Jan 2025 16:12:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D95906B0098 for ; Mon, 13 Jan 2025 16:12:02 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5D16642E18 for ; Mon, 13 Jan 2025 21:12:02 +0000 (UTC) X-FDA: 83003676084.05.C7C01F6 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf05.hostedemail.com (Postfix) with ESMTP id CC830100009 for ; Mon, 13 Jan 2025 21:11:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; spf=pass (imf05.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=1736802719; a=rsa-sha256; cv=none; b=NSW5xItgfsBVSXUXeQeMCw52PHfVr5Q3hZpru8hLS+ABKDYFwoly3ToADoIsgAvWzJE0/9 dEEEnJkwV6Hp8rjiT5JmuMQQF8j6+wKXPrLEMWmE+wRObby7fAp+uYid6xbvsVNEIW3VVD pEcLbjYZsOX4by7P6wz/wX0oukBygSE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; spf=pass (imf05.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=1736802719; 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=LTzPl4djjIdWFnlUDp4J4US04fOE5Nljrgdv3Q6o6G4=; b=a7U0ZfJJWcWXnCeT7rUhnyqcx0trdK481mcJ6nLAY/OS7Af9g47P5vh0ABJaS1HKjipnXu 6/SF4UPf7vi7icQYGAT7iePZ4KDVkSzlxAcH3QoCotFoNSaS69oVsHWJJrpWqBYeSBQyG2 A+PJi94Cqn79PTGKQCfUQeGnyjVb3Bo= 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 1tXRfx-000000008Eo-1N6a; Mon, 13 Jan 2025 16:08:45 -0500 Message-ID: Subject: Re: [PATCH v4 04/12] x86/mm: get INVLPGB count max from CPUID From: Rik van Riel To: Jann Horn , thomas.lendacky@amd.com 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, kernel-team@meta.com, linux-mm@kvack.org, akpm@linux-foundation.org Date: Mon, 13 Jan 2025 16:08:45 -0500 In-Reply-To: References: <20250112155453.1104139-1-riel@surriel.com> <20250112155453.1104139-5-riel@surriel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.54.1 (3.54.1-1.fc41) MIME-Version: 1.0 X-Rspamd-Queue-Id: CC830100009 X-Stat-Signature: jzrzkkozxbd3cdc3opdnwctzj59fhjnt X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1736802719-407498 X-HE-Meta: U2FsdGVkX1+LxkQNWP5GMnqcq8H82++GwF7Dgex52zwT9fnc7tAbUxZHnRbfxDv0JoS4m0voV4wfncxxitb2UDiqCT01J1kJb/XoS60D/wOYTvk3qpUQ0OzsKziaw6xUyub6/qpK9MtzBL9NZASrCfd9KfgiCtX+6VXnE3662k7kkLWkbAxlYPsUvagPwS3xmZLv0KA5Smbb7VZltPK3fRbE+pu0UshFAC4Bh1yK2vMo8SbEM22hkbZENlweSRu98f7G3sy3xKlFxFeevSBKYsRjS1alnvirQU1pUQztz2s51alPAhRa5mZdkD1kjocV0uhbUlutTrudcDas/wbt3CM5A6YKbrD8CP+jgJQ9IxWYpUuxwEFLMW/pA3NsFDYUGeMuYFnxeLQBiFvPEKkY9dGVw8UcQWoTZ1fJmbFY2ihfL3/r7B+ihSJvVNPUyQrRy2dCHAu7GBrW7jX8fBDhfRrEBOUK1CoGN32pcKQdsE1t96fINgMdpYbXY0mj15Iz+0RfAlCmFB7fHIwIQkBKtRUuuqjlDpo3qIC18oUF9Y8vLTuA4afZ5TrnIC7/dC82XuCLPAyuBpCWfcVe+DoHuy9GP8x1EozH4t/dJU4h1GKaBTgzL5bOp0z5WX6Jn9t3ON6EpNOdmi6bjb9Ya9me/SYiWfP+fIG3/xYZQ5EPKHrgRoAGXwQaKPRY0WSvCEHyUpEm2++z454SfivYEe7Pwv0fkNPFidcRvWuhzQguY/JF90dlG2G3StHpfqptbjoC61RKgXcPEm5yPHbimk8kOwI/0k/Y4FUbcFWtR+xZz/Yz4G3vYh7bsRfQkC0uQx8lWtamu47nrUICQsNG2I/TKM3IP2vq9OiQxDSljgsiF6m1iqdDbVgVUay8KBMcjI4Uu+bxOzgg8OP3EEWwLIgDiTrH8DEzH4GuLnmuKooh77wids69LHb1O8IfhEKsnAzswnieioLKH3u2Q3kyjfq +9WJ2ljf 16Y5cVtXwjL5VLF6OEUobxMYu+u962Kxlf7lHqPl5ooVWYgxIJCfkdnyaJY322Rh6UMqh0fxQx+3zHR4/l07gYQAu5rRgCUzTBQmIF+x/EjUDCNpf5bN9D8ayHzhqMSD3fxMjEoKpLSpyWFXg3IEz6pzQ4kMceKj3xtcgxEYMwdfhUrwBBQfcoGyMJk4x9tctNjyjUtcNUGnxA/mS3l1g6JOPJhv150h3/u4OlgI4i9GyxgafVYli5RnjtKEs9Ysi+cYj+OfUbDUPQNRuC9yuhoIXTCxISn5A/IwDqnfWtZrR7fLyld/I+4pmJGWa6UfhveF8yqDFgYIA5sMgYJJ7hwb0OQnTPGJ+NNw/zchJvGvFVo3iSnbeWtFeekT3AIdP96cvOxbNSxK/EBuoFx5SGI3mQQyWRygHmEB2 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000049, 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-01-13 at 16:50 +0100, Jann Horn wrote: > On Sun, Jan 12, 2025 at 4:55=E2=80=AFPM Rik van Riel > wrote: > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Max number of pages INVLPGB ca= n invalidate in one shot > > */ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (boot_cpu_has(X86_FEATURE_INVL= PGB)) { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 cpuid(0x80000008, &eax, &ebx, &ecx, &edx); > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 invlpgb_count_max =3D (edx & 0xffff) + 1; >=20 > I assume the +1 is just a weird undocumented (or weirdly documented) > encoding? > https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/prog= rammer-references/24594.pdf > says that field InvlpgbCountMax contains the "Maximum page count for > INVLPGB instruction" and doesn't mention having to add 1 from what I > can tell. >=20 The way I read the documentation, the number passed in to invlpgb (and retrieved from cpuid) corresponds to the number of extra pages invalidated beyond the first page at the specified address. Things have not exploded on me invalidating multiple pages at once in larger ranges, so I=20 suspect my reading is right, but it would be nice for one of the AMD people to confirm :) --=20 All Rights Reversed.