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 7EF8CC02180 for ; Mon, 13 Jan 2025 14:21:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A1B976B0085; Mon, 13 Jan 2025 09:21:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A4426B0088; Mon, 13 Jan 2025 09:21:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D06D6B0089; Mon, 13 Jan 2025 09:21:56 -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 5C8606B0085 for ; Mon, 13 Jan 2025 09:21:56 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9BFB544DAE for ; Mon, 13 Jan 2025 14:21:55 +0000 (UTC) X-FDA: 83002642590.19.EC43294 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2075.outbound.protection.outlook.com [40.107.220.75]) by imf11.hostedemail.com (Postfix) with ESMTP id 96D734000E for ; Mon, 13 Jan 2025 14:21:52 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=tF9CIBgT; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of Thomas.Lendacky@amd.com designates 40.107.220.75 as permitted sender) smtp.mailfrom=Thomas.Lendacky@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736778112; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FCNuhtl5ig0f9eZKiHR7qFpm08k/ih6KqpJVc/31Cwk=; b=nMCf5p/xE45D7jjUvCFvA4kW/YWsDl9JPOsb134BWRcD4OJ7nlBiDrlP5hd/Gq/8DuTEs9 +tNFwVdMt7IDkZyHcJgaLCK9nKg74Xma5GNNPrCiU/vNVOk0UqkC37r8ZmDedj4lbur+gZ ekCRG4cfkdz0yT4hQn8ibIeGgrByAb4= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1736778112; a=rsa-sha256; cv=pass; b=nlndi9aVA1G6d/DL+KP2CkeHrcaFtldPkVDAl31RRj/MKAYgC6Z3yNhXQzbvlQudDRZXgV yVPKYOD+7K83WSWk5Lv1qKbsJc/geiDSqVxsQ9211gWbIu99me5+YppSCM4C3KTloJZi1d CSqH8WzrNUQxBvhqnyFFgACVkQzFiIw= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=tF9CIBgT; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of Thomas.Lendacky@amd.com designates 40.107.220.75 as permitted sender) smtp.mailfrom=Thomas.Lendacky@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BtW70sT7FPg1BG4xvMUrK8fZU8K/TBcbz3RQ/FvbZw8+S1GZy1EqtbJgq5EL4Yb4CsYgB3bAd9N8RUIVeOKERppSF7Tbr99K1NxfYJZGeQLIEVT257qEUyll/90B+NIJN7bu3rDk8BJXxpwziil+N2KdRSnqgS3GdSSLWioZxXGUgc6/tzACaEaDRmCTQpDJ7MD+Qy15+OrpFmxhHzgPY9LOPBHwAJ4OB03CSWiiAMd7ScdKsn6t4lZ8Bad2JLO3H89TiBZufXu1fuy0PejRP/JUGQPbmcYDtyk2yEQ7GgZUt6nZxFUl8HNnbAgHtKQnHJPARMUSNwSIjbPDsUwtFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FCNuhtl5ig0f9eZKiHR7qFpm08k/ih6KqpJVc/31Cwk=; b=VRAoa81hZkq7rp31iMuUrH5pdgt1VMbzqDrCmNkOvE1APILiWa+J+v30FcWoaBy+bVFzU+JsrqCbxdgFe6LojxTfOas+/IR6EtEkmtP2dkNG8V8l70RLPO5cxWFAgyCtSorgQZ7GJoWd/TcJFUcgl2p0QqnjUjXwX5qOEQbRkZUBrG33pCXLeSjN1OYvmxiZ3bFTudgLuSXwPuwUVhmEvy8uiJYySnMSY1Zwr2kbZTuyhLIIH90J9iLxGPyUJpWulYAsBHs63o6NLX7UvkhOoNHnbRBTbY4IanyduV9u5EY65/2rIbC7EkRNmmjBzNsiB4fQDLtqqw8zl9sLL4KEPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FCNuhtl5ig0f9eZKiHR7qFpm08k/ih6KqpJVc/31Cwk=; b=tF9CIBgTmUiD4GauqxfZnzzesYFbcaWBpGm4GEXRNL20ZgVRsBDt9QxHuyHC3ZUERs4l4XtBV11qaiKBiVs6qRJQja+cmW+HQRQ2c/HtAMRwKNCqCw0V2eQMF9TRl2+QQ9Jcq/NAWg//ZGFL8SlsMDvMHFf9IUCd4KUAYhbPmJI= Received: from DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) by SJ2PR12MB7919.namprd12.prod.outlook.com (2603:10b6:a03:4cc::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.18; Mon, 13 Jan 2025 14:21:50 +0000 Received: from DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::20a9:919e:fd6b:5a6e]) by DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::20a9:919e:fd6b:5a6e%7]) with mapi id 15.20.8335.017; Mon, 13 Jan 2025 14:21:49 +0000 Message-ID: <685632f2-44a4-a7fd-063b-1d426896f297@amd.com> Date: Mon, 13 Jan 2025 08:21:47 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Content-Language: en-US To: Rik van Riel , x86@kernel.org Cc: 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, jannh@google.com References: <20250112155453.1104139-1-riel@surriel.com> <20250112155453.1104139-6-riel@surriel.com> From: Tom Lendacky Subject: Re: [PATCH v4 05/12] x86/mm: add INVLPGB support code In-Reply-To: <20250112155453.1104139-6-riel@surriel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA1P222CA0111.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::8) To DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5070:EE_|SJ2PR12MB7919:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cef2699-9d84-4d80-fa96-08dd33dd9e66 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TXlZTEtzdVRtTnpHTkhnSURFdmhNTmVmSVpvdnJyRmVRSWZRK2FBNkw2a2xt?= =?utf-8?B?cjlMc1h6Y0Y4Z01RZnJ4M2RvRFVoekhCUmIrZXhSRk1GQnc2T2RORmdqSVNK?= =?utf-8?B?Q2EwbDFaeXg1R2M4eHd0U0R2ejBjbVFEa2ZONnlTcWVncElMMVZlT2dpdC9N?= =?utf-8?B?M1BYeU1kN3VrSStsNnZ0UXBBek9oUnNNdSsxUzFnNm9SQ1krTU9HdHZ3SzlD?= =?utf-8?B?YVczUHFLQ3hCMmFHS2Z6eWRDK3N0N0JaemU4Uy8zbEthUHVqRmpRZ2RaNkJm?= =?utf-8?B?RGdZaUh4ZEJIV1k5aE5nRGsvck9oMnZMU1RxdHdYMkJYUnp4cCtXNVJMVVoz?= =?utf-8?B?dEVBWXJFTDYyak9pSGJJSmtMc3VxUFJBMEJRaUxiWHpMUU5nSytRZ0JWODBa?= =?utf-8?B?ZWVUZ1BDUG5SQ1E1aXA2aFZsUDhPRjAySmNHT2lveUZBVUdPSnBoNlo5VVcr?= =?utf-8?B?U0NiRzBROWdvaFdqODgzSVVtT2I5Q0Q1M0srNXNua3NSSWRuUDM0WjgxMWFs?= =?utf-8?B?d0ZKWVFuTmZSaWhiRk9RTElJQnRYamRRdTNrVUM2a0paUXhkeEhCTEpRZHIw?= =?utf-8?B?dVNDbERERUZBcnIvQkh6eGxuZDZVWTlBbjlSR1R4cTRvbGQyTUUwVWhjTWh2?= =?utf-8?B?cldzUEN5eHBmNCtRNnlrczg0ZEI5NWN3bHNWcXFveUFKUXNvMTBOLy94cys3?= =?utf-8?B?WjBhbFN1b3hRTUthOVh1UWM1TjNjQnRVY2dkd0F5ZkNRWStmZjJLY3hHbDRZ?= =?utf-8?B?aEh1QlNrZXJOT0xwcDdzV3EwN3gwb0g2ZUxHRVlYRjlqeDFnTzZjYU5zSkJp?= =?utf-8?B?TnRybCt4S2lpQkI4a2xUbFpVU0RuN25GNitPR041dGNrTGVEYjJIVC9CMk5N?= =?utf-8?B?YXNyamdQeG5Mb2xJM2dNdHhKZ3NhT3JNVUovODRPYWo4S0FoQW5SWXNVeTFo?= =?utf-8?B?aFpmOWF0OG5lYmFVenVmallacDJhd2dZVFFvRUxzVHBEQ2w2UWR5SVA1WGVi?= =?utf-8?B?MkJuMi9WMHdxYVpMU3ozc3dUaUc5SlFkOTFPSlV5cXVMYmFRQ3c3NmlzMWtW?= =?utf-8?B?c3p4ZXJaWThkVy9vL2h1NUVPRnAva04xMGxqdDlOa21TT0lxVGg3a3pkemVI?= =?utf-8?B?YWEyeUg1VGg2Sm0yNGpibXlnb08vN3FrU2dlb0tFSUh0R2NLTVVrYUUrTWNo?= =?utf-8?B?a0JSbzhDaVVjbWV5dENQTDM0NitWNEhibmxtUmVaZzVDcGswZVphVW9yNHUv?= =?utf-8?B?K0k3YmJrNTU4M0lReG9yWUpkYlBMMkRIamZya0xpQ2h3eXdDeFpqNFQ3TUxu?= =?utf-8?B?MFJxUUd4N2ZPZmUzZXZQQU8rK05mcE5PSWpXZDRYWGpjUDdFU01VcGx4ODkw?= =?utf-8?B?Y2Eza0VaYjZKd3J6QVhGUkV2aVJVTERoeDEzdGZmUFVRN3FMbmRJQk5OTHFM?= =?utf-8?B?c2llMEpWcVVVOFFpUmNQendaMytRWUZIWWFHY1owNVFXaTBSK1dzbXZtVUVY?= =?utf-8?B?QmJqLzYvdEVhdzUwVTVmbU9nMmxnMHVzeHhySndERmFvM01mem9RRnJzd1RJ?= =?utf-8?B?V2padUV6LzhIZ3ptUGd6ZDd5TEtlNDhrU0QvRWpsUHJtTzJGQk9adjVpNmZ2?= =?utf-8?B?RlRYeStOeU56OFd0RTg1Z2dMbVpiMGpjUWt3NWJYOEZKWTc4S2FNU1pRTStj?= =?utf-8?B?VDE4N2xsRk5xc2VodllqMEQ1ZENJVklSVS9kZzJINWtuR1R5NjJpTkNhZ3Rv?= =?utf-8?B?Ni94R2tzVXZ3WDA1RlZySkNiMUFWdk0yc0FjaS9XUTR6Y045ZGs4MERscnJu?= =?utf-8?B?SUxzNmZyejIrRlBTNThFVGI3czdjdUMxWkZtTUUwU0lDWXRWRzh2eGR3R2pN?= =?utf-8?Q?sFi8oYQSkjVSe?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5070.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R0hWRk1ONEhpQWJYdW55QTIxelBlLzZ1SUErQzkyODV4S2s0VFQwOXJSZHAr?= =?utf-8?B?dEJUT0JOQUpYNFp1c3NlOHFSc0ZHRXpRRTBQcFhJRHpNVnFwOEEyU05HTEoz?= =?utf-8?B?YmNlVElJekVaMHJuYURiamI5Zy9sRTR1OUU1b3MxZElub2xjeWUyRHVhbXZr?= =?utf-8?B?VTNUcS9sUEIvRHpVeHNNV050blNjdWxJd1B5dHdsMGllNUJCbVhHbllMK0Jh?= =?utf-8?B?Z2s5Q0V5cHF5eGxHY0tBUnBRNGEyM1FQWGFjUGtJVlY1VWJBVTZKUXlib3I4?= =?utf-8?B?aW9lNnhNNjJWRDNxWXpWaTVGbjBJckNZdy9HUTFqaW9SS3ArUEJWeDE5cXky?= =?utf-8?B?MWM0UXBWbUpKeDRKSm9FbW1Yd1lydjNFRWUzQzFBTG5xeU5qY3V5eDl0MFEv?= =?utf-8?B?V0gwdnpFeElBZVNoTHpMS3ZxcGJ6dXVYSTd5SThqSmQycTd4V2FKT0dGS1oz?= =?utf-8?B?SVI4VjdEZHVyOEZDMDY1UzRmQ1NXRXdLeUE1UitIRU9tU0RTSmEvUUluVGpq?= =?utf-8?B?ckExU3FmN2dSTDR0L1BZcUpTbWMzWEIvNk5nTHVQUldXVWd4cWFjb2ZTVnVM?= =?utf-8?B?WTNGcEJBeU1kd0RXeHVRKzlTb3EvbDB2b2N2eU9QNVp3L3JLTkxockpuUnhI?= =?utf-8?B?cDhmaWo2SGllUmVKNWZFM1Q2c2VSMWtQUVdXV0NiVzNDWjI2Ky93Yzd6MXdu?= =?utf-8?B?TExFMVZweTZwRmlWYjBCYVUrSFdmQkNvbmRvanNuaXpaNmFuZEczeU1yVEto?= =?utf-8?B?ZmlFdFpXTFRqLzRtbnptYkxlYjZtMkZyOWVNTW8rOXlVeWk2MzV2Yjljc00w?= =?utf-8?B?ajdLdko1aVVCZVVSbTE0eU1SWGN1V0RtaUx2dkgvWk9hd0sxZDRNaSt4eHBx?= =?utf-8?B?VkNGbCtSai92K2MvZk5EbGdNUW4vTExoNENydnF5YXMxdThYUGhMN1NneU9L?= =?utf-8?B?VWV0OWFQU1JnZDhUSVBPVGZPNVdSWkE3aXphcXMzNzJHYTluaW1OR24yUGZv?= =?utf-8?B?ei9YaThYZWtWQW1IVlY3RWN0cmw1SU50WUVMMkluVnQ1ZnZxcGhiY3pjK29v?= =?utf-8?B?SGFLYjhrWmQ3cVAzRDdtYnIrQ050TE1UTTBXeGhkelRieEFLU2c2bXVCb0Ey?= =?utf-8?B?U2ZIVG0za05MeXJiVldZcDFDN1dJK2xwbE9LYzlOTFJ3azVWeVgxZFh5RHZL?= =?utf-8?B?SHlGU2hLMDBFUGRCdTFFTkgyZ29EblBBczd3dGowQ3ZMVUxwa3RYYmtUQlV0?= =?utf-8?B?b0NZdVRsMTE1d1NvVFBpNW5tVDkwRXgzMGhoOWJtdm9jRFU4T25Rc3hRbzJy?= =?utf-8?B?d2dIT1B5TCsvbDl2OEY5M2YxSm0yTVFPcE5NaHBXRmdGVkJ6ZGxiT2s0VWFm?= =?utf-8?B?c1VkNzFDbTNueXNWZ0VYaTFxQzJ2d2NpNU1qTERKQWpoUUw2eTMrQ2k5elp1?= =?utf-8?B?aGM3a05ySllVVm5mcWlCbnByc2JhRUhLU3AxMVR4MUNpUG5GQmJYOHdDWHJ0?= =?utf-8?B?Vm9FV0F5bWEzSS91VEJBZXBpZG1CdkErTFdkYXVJaThSbHhQTzJWUU55ZEd6?= =?utf-8?B?SDUyR2NGVHptcHRwTTBpckRJeCt6aUlRSGpvYW1TckZaNFd1RCtPTlBPbHA3?= =?utf-8?B?WEthYU44aTdJZnlKTURuV3hQV29jQ1JGU1VibG1LNUFlNngxeW1Ud0dRZHM1?= =?utf-8?B?NkJqYlFzTkpxMmFNODAvTXF2T1Bxa2sxTVFla2F5RHY3a0JsZmtYWlRGRUo2?= =?utf-8?B?UVFQSTNQUWZ0VTRFS1lwaEtSVDc2RHZMTzlEREd6a0szQU9MS05VNTg1dnZG?= =?utf-8?B?TERKSTVVc0E5WlF2Z21YWUJRSFpPK1VmSkhIV2czNDdMbmZOUG9va1lNUU5Z?= =?utf-8?B?K292UHNIUXA0REp0ZmIwMGloVGRJeVFzeE00bG96RllJVEhsRlpKS1U1Qnox?= =?utf-8?B?VUExN3EwRVRQUDdYK014a3BZZVpjS3RGMzlPd0VlRVFjMnlLeDJJaXB1dHRM?= =?utf-8?B?a2lEZ3pZTjZWYThiUFQxdGc4M09UV3RteHBBSVU5eGpVWnVBNG5QUVN0aEdz?= =?utf-8?B?VUw1NTJqN0Z3UGlSeU5VV25SMXFqcHFLMVIxbXFjenljQVRXMWJFcE1pRlg2?= =?utf-8?Q?8Ft3ewZL2iNLNHZCmfNLRdXG+?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3cef2699-9d84-4d80-fa96-08dd33dd9e66 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5070.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2025 14:21:49.6458 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Xq/6OQp62Y11wfrx5xDE3i6AIP0/E55EwIxQsMi6tBo4ahViwpF64d/0S6kQ7lhX1zKMLy0wmgUR0lnD4+RGCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7919 X-Rspamd-Queue-Id: 96D734000E X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: fruizrda78ggbnksyk7bj6378zag15sk X-HE-Tag: 1736778112-840183 X-HE-Meta: U2FsdGVkX1/H+QeHE8chCHPzXKMsXlqeWbsU9SkwHOKHYAl1hAUjbJ0kYNvVbJUZx7DyLV7fz9LnQn3/oKRUVAiShUCi/+Ix+GdoudN2hllDIbPHFdbgWnc3+iWkLKfa/sQuK/jcMrkD4ahpVjxw0Flc8rsyarEX55VWLwe8M+NTXuZclPdJNs8M5O6GLljmatxgOue4Yy27QgNs/jwp7VIjvDqpy9qls0pvR3ZYaHE+sMxosc7NJe4kn+3vQfJJWiPNe+B2x8X3pghwS88j6C72dEYlV9MTwlIJ/IhnNHp/l26gdzHYj6GFtU8VS1CcaUPbmSK3yVGHjOnBSFUm/851u2agI48FZdbzlD0pL3y+wXQEwHuqWt+4AghxG+tWZv/Y5K0CjMNvY4vGQb5+FSnc/rQBPzoRviFRcsnTH8TMPB9arZAXioJ8mm4bRS+d2gdZJ64SjHR1pdW8WUSP+Bj7RQqNg9KgDQIVsWnIWTcbsjOWl7SmbYvrK7WzeDIEOl7NqcupeDhr39PGLsz321RJoshFkrftq+Asdo1WaKHjmd+PSydK+S51GSdzFklJwa2UiuSQMUWcjZp8jYJYFZJhVT3VmzWa1/gRIIEKb+ICYi/zam6ZHWAJxOd+KZBRIAD3z93JVclm2WaW/4pHCVSvTiOD+2jfgOyN+UG36wu8kYnppUYC08K+utLy6YwogKoeoRq9ozEkC5gkI0QDI+uvHs8VH5m9iYjAFz/KeG098YkfCyogQxLT3R/S3KNSBO6Vy2NjjTSr99MOHJNBZ2M2tJHhe3tsoghmDJJR3ZKx83bqiK+cg+L7i+EZsOjxOpSwUO2jdyjm31fyCnM+X9HkXl8KhxBwCSQGgZZAbFnPfncu+Hp4mPuS3KPgKSMb43PTxr6zDpt8VCFLAkLZz4Xo7JScdBKDA6FPERzMMEODbpcmTyLpVPoDp/UYWMFqvb+75XVFZtGp+jId66z a5uDL+nC MF3Jk0cg1PcXf/3Bo/9O+BxLOq6H/9awkUsu7pKkRk8YrfNFcc5nDuehxFdH2VO/vVawLPtiqeDP0wj8A3CTC8CS/2OpYnrZ317JmNboTxnDaS/XKstfixYp9egM8kcsHikKkJdQYLvS3rJWLwbm3URGxgEEL/MaIOG2Si/yQSpd1sgz8fC7WQwcTJuRbWKWL8sRGzgWTLXOCeGZJqZUD5cez8D5HE1Gw33/gV6jaSi9Xk/1xndnsOL+VKDvti5NQdMLlQEEPlMhTLAxQn3imEhVtNzXiAtlEBeT4jYDOVZv+70F00j76lWSgP2S0uigiNpWlaDnr8drG69tryLorL5h5+gJcRqWTJcby69DQPQZUbfI4YxzV8bbqIFbmfHMt14ucXLVpEP26LcTwlJkhOAde6BEdirEw+9JK4hdGHLSNLisNzreySChmtt9JPp0AsJahbyZOMSQ30nE= 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 1/12/25 09:53, Rik van Riel wrote: > Add invlpgb.h with the helper functions and definitions needed to use > broadcast TLB invalidation on AMD EPYC 3 and newer CPUs. > > Signed-off-by: Rik van Riel > --- > arch/x86/include/asm/invlpgb.h | 95 +++++++++++++++++++++++++++++++++ > arch/x86/include/asm/tlbflush.h | 1 + > 2 files changed, 96 insertions(+) > create mode 100644 arch/x86/include/asm/invlpgb.h > > diff --git a/arch/x86/include/asm/invlpgb.h b/arch/x86/include/asm/invlpgb.h > new file mode 100644 > index 000000000000..d62e3733a1ab > --- /dev/null > +++ b/arch/x86/include/asm/invlpgb.h > @@ -0,0 +1,95 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_X86_INVLPGB > +#define _ASM_X86_INVLPGB > + > +#include > + > +/* > + * INVLPGB does broadcast TLB invalidation across all the CPUs in the system. > + * > + * The INVLPGB instruction is weakly ordered, and a batch of invalidations can > + * be done in a parallel fashion. > + * > + * TLBSYNC is used to ensure that pending INVLPGB invalidations initiated from > + * this CPU have completed. > + */ > +static inline void __invlpgb(unsigned long asid, unsigned long pcid, unsigned long addr, > + int extra_count, bool pmd_stride, unsigned long flags) > +{ > + u32 edx = (pcid << 16) | asid; > + u32 ecx = (pmd_stride << 31); > + u64 rax = addr | flags; > + > + /* Protect against negative numbers. */ > + extra_count = max(extra_count, 0); > + ecx |= extra_count; A bad ECX value (ECX[15:0] > invlpgb_count_max) will result in a #GP, is that ok? Thanks, Tom > + > + asm volatile("invlpgb" : : "a" (rax), "c" (ecx), "d" (edx)); > +} > + > +/* Wait for INVLPGB originated by this CPU to complete. */ > +static inline void tlbsync(void) > +{ > + asm volatile("tlbsync"); > +} > + > +/* > + * INVLPGB can be targeted by virtual address, PCID, ASID, or any combination > + * of the three. For example: > + * - INVLPGB_VA | INVLPGB_INCLUDE_GLOBAL: invalidate all TLB entries at the address > + * - INVLPGB_PCID: invalidate all TLB entries matching the PCID > + * > + * The first can be used to invalidate (kernel) mappings at a particular > + * address across all processes. > + * > + * The latter invalidates all TLB entries matching a PCID. > + */ > +#define INVLPGB_VA BIT(0) > +#define INVLPGB_PCID BIT(1) > +#define INVLPGB_ASID BIT(2) > +#define INVLPGB_INCLUDE_GLOBAL BIT(3) > +#define INVLPGB_FINAL_ONLY BIT(4) > +#define INVLPGB_INCLUDE_NESTED BIT(5) > + > +/* Flush all mappings for a given pcid and addr, not including globals. */ > +static inline void invlpgb_flush_user(unsigned long pcid, > + unsigned long addr) > +{ > + __invlpgb(0, pcid, addr, 0, 0, INVLPGB_PCID | INVLPGB_VA); > + tlbsync(); > +} > + > +static inline void invlpgb_flush_user_nr_nosync(unsigned long pcid, > + unsigned long addr, > + int nr, bool pmd_stride) > +{ > + __invlpgb(0, pcid, addr, nr - 1, pmd_stride, INVLPGB_PCID | INVLPGB_VA); > +} > + > +/* 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, 0, 0, INVLPGB_PCID); > +} > + > +/* Flush all mappings, including globals, for all PCIDs. */ > +static inline void invlpgb_flush_all(void) > +{ > + __invlpgb(0, 0, 0, 0, 0, INVLPGB_INCLUDE_GLOBAL); > + tlbsync(); > +} > + > +/* Flush addr, including globals, for all PCIDs. */ > +static inline void invlpgb_flush_addr_nosync(unsigned long addr, int nr) > +{ > + __invlpgb(0, 0, addr, nr - 1, 0, INVLPGB_INCLUDE_GLOBAL); > +} > + > +/* Flush all mappings for all PCIDs except globals. */ > +static inline void invlpgb_flush_all_nonglobals(void) > +{ > + __invlpgb(0, 0, 0, 0, 0, 0); > + tlbsync(); > +} > + > +#endif /* _ASM_X86_INVLPGB */ > diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h > index 8fe3b2dda507..dba5caa4a9f4 100644 > --- a/arch/x86/include/asm/tlbflush.h > +++ b/arch/x86/include/asm/tlbflush.h > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include > #include > #include > #include