From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2066.outbound.protection.outlook.com [40.107.220.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BA7D23242C for ; Tue, 14 Jan 2025 15:23:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.66 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736868198; cv=fail; b=ZZyrPC6Cr2szXk7lh4aspY1zT+dfJRecb/URxnkmeox7q3thQ/QT2pIjXt+Ywpy2WV1EdMxvj/eVJA8P7IqPTLFY8GMeNNJ+05Aawu/Ugo/yJQhkBru8Dx7T5kHDe3mb2VTBaG6fjEyjOyJsrEk+jCbFqCMbiCLgf2Z/RKeewLk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736868198; c=relaxed/simple; bh=ADnJajUhUCBGIJr1OaesCiinG+r64vL1qmhsZrDy04Q=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=KslOBXLeOQ4K8ssal4jY1mbpxKqH487RS73CB2HJbtXNud43RzOZuUWaTaU8abX0yQ/N92Wva8F+pXwNyJsQQWOadD4vngGP70fxPCcIiolvLDJQF+pn430tdwjsa0rQJvuaq82C6ANUN+nN4GGfi8NYJfoAoxkJl2x9XNfImWA= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=GFBGXFtA; arc=fail smtp.client-ip=40.107.220.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="GFBGXFtA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OJnoGr1jT8AWu5hClVUEo/+T3pU4ACFhEV4k26XYVIK56NYSi5stPYc/3/XWEd15MWk8QNA6pd/nh2/YsfgrxPqXmLw2JjUnxsNXdTcKAH8VFpB+3ZOlVU7tPvWP8hXMO6j0BgfDyoaNqGLbVJcDqvh45QDnokEVB8U9wrTiORJn7xsqonkv8Qv2JipaRQ4m8udL+wFM/TC2q7g08LggvaavJLqjrrWEWOQCNzVFt0gnGOPx1ktduweUOKzW5PX28F/XsROG4GGDLbYKA738evZc/KxE9anANQBTk9+8uLVhS/4ZTqPHyOjQX9NtVmBcMulVufiNLU/zQuSEsqlQJQ== 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=tk7bT5/N1bg0aSOHarLN09lSJHHc+cN+5ri3iM9wGeM=; b=yBkYRG8YmWRQeGOOwotMRjtxy+/GwdaXaEILS1DrC0K1HMjkBS+pAxMZZ6ZNoDjjN/B+enQkOUhleRaZpdQZhG+tKg9P2wRbEXyXzf7cx05IFI8CgzZS1vuyVt+Jyjzuzf9EWtB8UUCwfz4CswomfgV5qqVaFy+UpzH3MW+doL0WPklF1lEZhkh0YRXHHjvfTM1kyKLJwG/cPdg7XilP21LccSlXxmAreXAoQQbKzvTU0r91Xp6Vl/ImZydMUwMnl6AQnJc0vpulwP180Vf1MtW1vPUU+0SxT7E2zh8B1QXAbPNOYTTSsBQvIPCbkwtt1knY9Ucalw60qJw0gE9cmQ== 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=tk7bT5/N1bg0aSOHarLN09lSJHHc+cN+5ri3iM9wGeM=; b=GFBGXFtA5nYnJvm9GrEgRen4ktWAG4CpG/cWxIhdJplBoueOpm8M6qvYTJPDcdQgbtd+KM61eGWUEZdr03yuMScZ1Tfsd0IlHGjS5InSmVjqEbSfBkfaTbEmRFFlVaRR3yUsh2MKh7uZb2QVj1cynO2khKhmS1V4IjWlVVjnDTM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) by PH7PR12MB6834.namprd12.prod.outlook.com (2603:10b6:510:1b4::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.13; Tue, 14 Jan 2025 15:23:14 +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; Tue, 14 Jan 2025 15:23:14 +0000 Message-ID: <0e20a86c-bc4f-2774-3cf7-4424af7becad@amd.com> Date: Tue, 14 Jan 2025 09:23:12 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v4 05/12] x86/mm: add INVLPGB support code Content-Language: en-US To: Dave Hansen , 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> <685632f2-44a4-a7fd-063b-1d426896f297@amd.com> <7045d1666ac5722820a43fffa7f2e6fb3c2eb485.camel@surriel.com> <5085e0aa-5921-40c2-c018-c947b98f5152@amd.com> <6737e3d6-65fa-46b3-9413-e26f4ba8efdd@intel.com> From: Tom Lendacky In-Reply-To: <6737e3d6-65fa-46b3-9413-e26f4ba8efdd@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SN4PR0501CA0057.namprd05.prod.outlook.com (2603:10b6:803:41::34) To DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5070:EE_|PH7PR12MB6834:EE_ X-MS-Office365-Filtering-Correlation-Id: 71d14bbc-4dae-4a8c-1835-08dd34af5d44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cUpQQmoyNVpvRGhmQmxKbk5DeU5pRUlQbzhSa3k4OG1EYzZUOXV5M0hra01S?= =?utf-8?B?VDBnQkQ2WEFvYk9ielNoRk14VWxlU05YMXFNS1M4cCtOeG4wWS9LelFRSDht?= =?utf-8?B?MDEvWVQyMkM4a0hPWlpDMnczSWUrRjg5WGMvQ01IZEhKMHViMy92S3lzL2gr?= =?utf-8?B?aHFRNGZCeEJTREtTOFV3TTVRM2J6ZFQrRkJoT2d5NnlvOTRYbDVmUlRUSHNq?= =?utf-8?B?aFkvaHRvTHFPeFpVOGJxQ3l6UThzbEZvM3d5NHlXVnZSZGJ4cUx6Q2pNV1Z0?= =?utf-8?B?eUFNRkx6ZDJpTjBEaGpDNTlIeFQvY004N3cxL2FGZTN2Z3V5cVNKS3NiSkR0?= =?utf-8?B?V2hKK0FLMnUwQTFiQXNESVRVTU52SzJ5VTB3UXFQT3YvS3FzOHp6dVdRYUhB?= =?utf-8?B?c2FRc0NnLzkzMFY1WXJ4Tno4dVFYVXJrVGlHSlZQYVNpTnpuanlRSWd0R3E2?= =?utf-8?B?N0dLOGZqTHFkMmJtSjh5SlRmc0VjbFUzeVhEK0t5clRyZXlCb1FxQjFjaDVW?= =?utf-8?B?VXNVQ1VpM05QcXhYL1A4OGkyeTlIQ1p1NnZUc0Y1NHZuOXVVQTVzOHBYQmNO?= =?utf-8?B?T1lqcUFxYi9YTWE5bWVvaXZXdVJZWTdna1ltZVI5MnFQOTBsQm5qeTByUSti?= =?utf-8?B?dUZKdUdTbC9iTWJKUUFtbDVrQXpBT2FEb3pIbWV1NFF4TjNLY0lMTm9MaDBF?= =?utf-8?B?YnpHb2k5RFNXenVaZnNDSFMvei90Y0dwSzJ2VElyOE1LbHVrUllaUVhuNHZ3?= =?utf-8?B?S2hkbEdLYUczSUhybHN0K2lHOGZLUXUxN3Rxb3VNSjlHaUU3VDF1eDg1cXdm?= =?utf-8?B?dnlaZjRxV25WZmhDdk5SSmk2dm02VE9rMzNLb3Z4RDBLNFF5QXJwM1hpWGI5?= =?utf-8?B?ZDB4NFIrWkJld0RpVXBHNEhZczRmdk1pSWRxYzVEN3RRR2xpVCtEVlFNa3A4?= =?utf-8?B?R05JVTluYTQyenRlUlNNU1QyWTJWSFBnSTRVY05CL1lSbjU5TXVwUzBSOHZ5?= =?utf-8?B?b1J4cGJMMnowMng0MGRhRkM2eVM3M1VYSUh5dnFWMmUvcXJsSWNWRGVaQ1pX?= =?utf-8?B?UjVPV2VWRnZOdVFvWXcwTXpnL01ZTTcvNWVQUXBVbllpcksyZUVCeHJ2S0NC?= =?utf-8?B?OGo0Q0ppY0hXNXlaVXVIUlV0aDF6by80cHl5TFRqY2xPU3VIb015MldhT0RV?= =?utf-8?B?a1V3aENlQXRaeUNtdXFJQ0VoRUdpZEpFbEJURXJkYTBocjNHb09HRGJETWZN?= =?utf-8?B?VHVicU0vQ3VoWXkzU0cvVncrK3ZBaExRQVUweTZPZElNM2swc3lLTDc3bWJ6?= =?utf-8?B?SW5CaVo3TEM2R3NHZEpMVmJCTEhBZ2RmaDhSQ3JFaXF3dE1za20rREpFcmV3?= =?utf-8?B?cTRlZnNDOWI0ZGFSdVVCTUhVWDk5Um9WbXVmcm1INDIzMkdKVVhEZEpRbDZH?= =?utf-8?B?Y3RIdnFYaGRUWnVqY3V6M0dTeGZiQXh5bS9jdTFGS3BqNHJNaFRQd0dDZjVZ?= =?utf-8?B?MHhaYktFRVd5OFBtaHYwd2Z6VkdwcllGUm1KOHpURTdodkd2MnV2RjhIdmVk?= =?utf-8?B?eEhZaEZocGRjSHFKakJEcnRBcU5qR2ZVRXlQVXJUNVZ2WEF0MElPd2d5VnVQ?= =?utf-8?B?SGdweWRnbWxkS1B2bStjdEc2cEhtNHZPRmd2SGxYRzV5R0t3VDVWL1dmUlVX?= =?utf-8?B?UHNyeWg4S2JGMmN6MzFUdTRCVU52bG50SWNHdnJ2Z0VsaHFTQ1dhZXkwZm1T?= =?utf-8?B?L3ZUSXlRZGx4cHhLR3loKzlaYWVRaEJHUDh3NzJSRllRZkhGd3gvdDB3bEpk?= =?utf-8?B?UmU0d1hGZHhpa2FNQTFYblpXOWhiNFI4TzR3RFNtaXRnSEdCSGN6dFc0cmQx?= =?utf-8?Q?lCaK22kMYseRl?= 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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dXRFQUo4VHdnN0dNTjZNdVJIY0ZXK0RFSk5tU2JNTVl3cXNkN2VldnBkVnk1?= =?utf-8?B?QjNGUEtRZUR5eVVxeTFrKzdVUGQ3eW1kRWhmVzBMRno2aFJYY2NJYXpUU0VE?= =?utf-8?B?TnNMNkpLaFo0YjVNSEpTNUREZDFUL3dXTHlYYnNIYTl3Vi80emZYZjg3KzFN?= =?utf-8?B?V0dtRTBjMnFuZThQRnhFclIwdStYUWFlTmNndEQzYkw5ckxoTFdIV1J1SExi?= =?utf-8?B?K0ZLRDBkSWNkK2hXbjErTlRwQ3JsZHlmSlJ4NjNuUTgyN2o3bUtxZldwTE4v?= =?utf-8?B?a0taeUx6Mk1reDBKeUhXd1MxODNLWmRaK2tid2FmR3ltY1JrOG01VlBhRkRQ?= =?utf-8?B?NjRMdy9IdUprRmlVKzUxUHlTZkMwZHU4RHhNY0xud1plUUJsRFE1YzE2QjNj?= =?utf-8?B?V3A1REIzTVFWamdUaHpvZkhsUkR2aml6NWZNTVVsOVBlMVFUZWowbVdzME00?= =?utf-8?B?WkRBdjVOaU53NjEwRTEvd2pHbnhUd0lIc1RvdTdHK0VWcGVXTkNsUDYvbUdJ?= =?utf-8?B?emkwTi9Zci9PR0VtM2YwN2grVk9nTkJQRFZzMC9QYldGRjl0ZTFvNk9CVko2?= =?utf-8?B?Yi9aaHhTRm1UQnkrQkZ2QTVnQmtTdWRmbEJJa05SOHpXWDZDcW1aSGRkUEhU?= =?utf-8?B?Wjd6NUdURTJwRnhOUHgzWXlPVkx1QitUOWFBQ2tld05qVkpiQ1ViditHSVNw?= =?utf-8?B?M3l1aHpKT1M0WkZHZ2ZObFZJRWdDZklQRmVvMk03UFVTQnVhNkJZK3FqZFh6?= =?utf-8?B?clVQR0lQZ0tHL1FTZmJzWkJKcWpmTWRtVXA1bXF1K2kzYmtNaXJuUVc0VkFr?= =?utf-8?B?dGZhenozYmhRL29Gc3RleW95TzROV1RtOVpVdE4xUGY4K2pXdkxlUnN1aDNH?= =?utf-8?B?b2NybHJNaVlZTks5NFFVZEVJT1VleVRHRzZlYnZNdFUrOTFtaFEydU00cHJt?= =?utf-8?B?Rk9VSjZUSnpmR1ZqYk01Z1g3UnNlcCt5UEtJWjM5bUdkQzFwRUlsK2VkMExa?= =?utf-8?B?bk5xUlVpMU9RNnhYNDBDSEdtdHhEbVUxcXJMbUIvTW1rZy83ZVpGTDA1LzEz?= =?utf-8?B?VlprbGtKUUdxQllrUDZmNEhvTlpONE05YWs4dlhHem1qQXBRWEIwOTM5cEdX?= =?utf-8?B?V0hTUE1CNTgwck5tU3RpN0ZOZUYrSTY2a2ppVDljQmRkaGs2djVHQ08xQVVj?= =?utf-8?B?U2JnV2VGSHRNaVcvZElra0lZcWZhRktCWmJhbmRBOFo3ODAzcG9sTEdGSUMx?= =?utf-8?B?Q294YTBaTG0rM2hwQVVwN3ZseVA0WG1jR1VCbWVJKyt5L1dNaEJ1dVdQZjhM?= =?utf-8?B?WVdxQy9IQ3lZczV5YnZDSFVzeDN3UEJKeDdPTXMySkt1dmJ5ak9GVk5jbWNR?= =?utf-8?B?bUlZYXRBT2dnTGJxelBZYnoybnJhVkJRYk51YnN3WStqRWY0em1UdjNuQm1z?= =?utf-8?B?TWFScEdZek91cWpweDdueE5pbXlkMDExZEtVbUoyZXA5NitoaXozdHdUZThq?= =?utf-8?B?eXBwUVpCelJucXB1V0lqU05hZStLRW9wSVhOMTNSOFRNTHMzMGNoVzVKOHUv?= =?utf-8?B?d0kvR3NETEx2V3BZNEF1bkdnYjcxM2NoZG9kZlRNSnZ3eXl5QlV2MjdVazN6?= =?utf-8?B?dkVLNDZ4bFlBSkJIbFJtaGtNcS9MeTFxcmRoQVJzYURQcURyK3pSUlU4MXp6?= =?utf-8?B?S3JleVA0WGhjWG1UOW96d1FEdWdQeWdYMXE4YmljbzNBWHIydkhDZlR2Ym1p?= =?utf-8?B?R2l6UzNmYTBWNlNFNnpBM0M1Y0gxcDlGbEsxT05RQmIwSG1QeVFvUzdjUCtX?= =?utf-8?B?cTYySjd6U0RyZ3RwTVdTUTdEWEN3ZEFva1poVzRNbDJYaDBIZWRjRWtPb3F5?= =?utf-8?B?VXpVeXdMY1kyZDRmekZIN0JJWDJIVnhHRmxiVFZYU1Q5VzBXeUZRNFA1U1gw?= =?utf-8?B?SFhzZTIrSWtkT09GSm1IRTJIVFNtdytnSFdYYnB6bnpDMXN2eGgzNWdUVXlR?= =?utf-8?B?blZmcHNnVFZqZy9yUmNYOHVXMS9RQUo4eHR3SEhXYjJxNnpOZGt0NnEybUJ0?= =?utf-8?B?ZmtUSithaVFGdHFLRmJXcjhpeTZvZEdFMjlPS1J0STYvV0liNjBZcjBiektU?= =?utf-8?Q?BQc01kIoaK6JdZQeug/KIrtwL?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71d14bbc-4dae-4a8c-1835-08dd34af5d44 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5070.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2025 15:23:14.7590 (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: AEC6/3GqhcqdtvEUQ0VynyselYCnYmh06Pv28PJC7DkeY7cHavzBZOI8C57ySaQ3+etQ2U/f4pDflgmirITc8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6834 On 1/14/25 09:05, Dave Hansen wrote: > On 1/14/25 06:29, Tom Lendacky wrote: >>> Given the choice between "a bug in the calling code >>> crashes the kernel" and "a bug in the calling code >>> results in a missed TLB flush", I'm guessing the >>> crash is probably better. >> So instead of the negative number protection, shouldn't this just use an >> unsigned int for extra_count and panic() if the value is greater than >> invlpgb_count_max? The caller has some sort of logic problem and it >> could possibly result in missed TLB flushes. Or if a panic() is out of >> the question, maybe a WARN() and a full TLB flush to be safe? > > The current implementation will panic in the #GP handler though. It > should be pretty easy to figure out that INVLPGB is involved with RIP or > the Code: snippet. From there, you'd need to figure out what caused the #GP. Hmmm, maybe I'm missing something. IIUC, when a negative number is supplied, the extra_count field will be set to 0 (via the max() function) and allow the INVLPGB to continue. 0 is valid in ECX[15:0] and so the instruction won't #GP. Thanks, Tom > > I guess the one nasty thing is that a person debugging this might not > have a CPUID dump handy so wouldn't actually know the number of valid > addresses that INVLPGB can take. > > But otherwise, I'm not sure an explicit panic adds _much_ value here > over an implicit one via the #GP handler. I don't know how everybody > else feels about it, but I'm happy just depending on the #GP for now.