From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2043.outbound.protection.outlook.com [40.107.92.43]) (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 6348B1369AE for ; Tue, 14 Jan 2025 14:29:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.43 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736864991; cv=fail; b=sDXBkt2wpJ0PhZaYlIoTdFRwEj77bXRNrxfDLJ8QCRUEH3f/2rWLl+oAZyeFnaaXLUgtKwnS51jLv30hoJKuwjXrpbvQiSHiAbhBRDhrvRQeodocQPjhKkm1rFVt++pq1taPJA+cWL8risR4vcS5dgFnfhHvY/E+Ifx2y56+2dk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736864991; c=relaxed/simple; bh=ja/4jYJW8BZ5F4gSshgwPSsvQyzRM5rdXlrZALulL9E=; h=Message-ID:Date:To:Cc:References:From:Subject:In-Reply-To: Content-Type:MIME-Version; b=TFygffSWhViINcOg4wc/bfGftqD/s1j/0DsRsnTARmAzsIbxYuuHT9BoDMydZFfWTGDpBsObli8RKtbk8ibCA2EblXpq5SI1KhQkDN9K0+bq5tOcDHhZRLXeW4i+mZafGJlwtmEqLVkwKy23kVkfMPkz3e5DY+aRo/h95WJprU8= 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=a/Lx74v2; arc=fail smtp.client-ip=40.107.92.43 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="a/Lx74v2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ECinYkw8WXK1owZ8akSIiDwgmGm2oKOuZ2YrAfwGQj3WTKdNbSyZHchKLGg/10wNa4kF2eYI7N/l9J+mZudhuRGKBmdDYX6YPDIU2mon1hHjadw9SxaVisqs5rqwobwc1sUbqtvzHBm4F9q2NJg+vWbi4dpq6DJtYz2dfSpeDqHLy8pptCoOIeRl0LMzHDzP54hqa9MB8hEIDjkSL/fLROQHu2AGNz2Ws+09LgdcoGgsC3VYQt4R3qf/wiLu8a1SWt2g174dP/5MCDUeEniN0/Q/QZbn1PXCBc/RiwCvmtqhxLauqQ3Hl8kB3GbC0UVEu9qMiF+yuMHA5/KALtNuTw== 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=qz5uesCfHD2Gi42H4QR7NYL1MUa8Wo6cNBI7nMbb0n0=; b=KQhgLjFBaxLkddVjOtqtse+emcUp1jirddFxncGCn6jf/YRVJ/CU1k2FIbzEQtTluNWKS4J7fXIXocTaYiJdHAkYid8xjxNqJkvbFaaTeqmv1ZuBgQsiGCRZDkXb5qBRkq4m2pvyv6Qlj8O2XD+oU9y2TadSB8Y0A2eQpxC/VoxWcTZeg3tgLuxPUrvllXxj/J3Ima8MI3UF0XqiTuiLdmRXRB3pZrb+MU7Wh7oexK1VMxkL6wMRb7tENdg5hebsNXjECO0B4WmWfZgfMkrbX0J3agJk/92ZGmc2SJaFIehzZaKNw2nmOiHKMjxTX5CkqbbeuGVf3RnSF39FJulzhQ== 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=qz5uesCfHD2Gi42H4QR7NYL1MUa8Wo6cNBI7nMbb0n0=; b=a/Lx74v2BI990+7M8bujX2GKoqVY4YSkR34M7uUDg42HaxFbkedDW5f86Okcp79Fi/+zz5f6ezOSv1jFf7MwuQ1yIttCkpM02eL/lsO2zgFHVvfOwLbqcqyoYbN5KqviqHoDqR4BwXlc1iES1d1PkdVV760LzK1QS0v8y0jkbpw= 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 PH7PR12MB7889.namprd12.prod.outlook.com (2603:10b6:510:27f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.18; Tue, 14 Jan 2025 14:29:46 +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 14:29:46 +0000 Message-ID: <5085e0aa-5921-40c2-c018-c947b98f5152@amd.com> Date: Tue, 14 Jan 2025 08:29:44 -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> <685632f2-44a4-a7fd-063b-1d426896f297@amd.com> <7045d1666ac5722820a43fffa7f2e6fb3c2eb485.camel@surriel.com> From: Tom Lendacky Subject: Re: [PATCH v4 05/12] x86/mm: add INVLPGB support code In-Reply-To: <7045d1666ac5722820a43fffa7f2e6fb3c2eb485.camel@surriel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SA1P222CA0184.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::29) 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_|PH7PR12MB7889:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f199c9f-42bf-4bfc-a9cb-08dd34a7e50e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZzRveEVHZko0NyttN3hNVTdId2htaEtud092cndyUlhmRzlKK1J1bFYzQlFG?= =?utf-8?B?RzVkWE8vSUFRVXRyNnUzTVFHNEJndG4zdGlEd3pkWm80MjFxNVlQYjhWejNV?= =?utf-8?B?UmtIVjE4RkRLckRFQ1czUlVodG94a1JhUHhsMUxtOWtKQjhhT1Y1UE1uSG43?= =?utf-8?B?WFdGM3FiN2NFNEgyMVFVRHZ2SGpLODJwbDNGWEVGUzVFcDN5UXhPYllaM2pk?= =?utf-8?B?dnFzZlRHbDZKcStzWDQ0aytiN1ViU0t4d3lQOWVvb016bHRPRzhQdzRvYzNT?= =?utf-8?B?M3c5SlQ1OERiNVpzOXIxa1dKZm1RMmtScllGc2c4bmo5SDdYWEE5S0R3enRG?= =?utf-8?B?bnFZYmVNZ2U3STJuQWx2MWE4TVlQYjlDZ2xHRXA1dkhydk4vWHljbk9kUUxp?= =?utf-8?B?L2duTHZ0aU1GcWI3T081b2dkRE5MWjk2Nk93RjZELzY1V2FuaU1RZ0w3UG4v?= =?utf-8?B?M0ZPbTRBMmJZU0dGWmdzcXRsNmFUV3BiV0QrcnpOQW0vSlRrckYrZVB4dGY0?= =?utf-8?B?QXBWdWluaHg0UmVjSEVqc1krbnNOMGovSmhIMGFZQ1dWK1pwVU9tOGpCaUVr?= =?utf-8?B?L1RzMDZ1NGQrdUhhSUFvMGdsbWQzcTAzUytnZ2ZRbG9TK3RnVE14ckplWE1Q?= =?utf-8?B?TnQ3WVo0U293a2xvNEROYlVYcDRlRDcwNkRIWkpqWjZzT2UzTjU1NHZ0S3pk?= =?utf-8?B?RVhtV21xRXNrRzdqNWdhbDdCYWJJMDRhUi8yYWlyZE04SUVQdVFwc09nUHY0?= =?utf-8?B?MHZUZGNLUjRrMEpLY3MrbzBzaysraW0zSmgrWjBHQ3Q3cWczb2hMWUtFY1Nx?= =?utf-8?B?QW9qU2lPeEYxeGk0VXhkOTl0OS9qRmh0c0RScDFkS0d1R3duMmIyMi9FVDVa?= =?utf-8?B?a3laYUtmYWRqMXgwNVd2OVZmYmpqYm5YSjNselpGVkd2YkFqcTlHNnViQ3Fr?= =?utf-8?B?ZWswcGg4UmZERGRPWDVZQ0d3SnVSa3F5cFV5ZWxYWVNlbWV1YUdoU2kwMkUv?= =?utf-8?B?S05YYnc2R3ErZ3ZHeWRyWENFTGJPWG9sWEN0WlAvNlRMczlYYXBJMUxQdjlm?= =?utf-8?B?T2VVSnQxRThvdjRxdnFoK016ZG5rbjJXSGZJZXdyd2hQR21xZDBad1o5NklX?= =?utf-8?B?VjdjMDJqeFVRb2RiMVBDY0UyOHF3dFVTWWNqZG56NmtzNWNsY29LeXB0YjVH?= =?utf-8?B?ZmY5M2x6SXkvK1lCSC9TMURFdGw1WUhSbmdidFdCRC9sRmlKdXdjTWFCYTY3?= =?utf-8?B?N0RMbjB6NzYrOExYQkNMaWQ5TVBWVVhxWVg5NEIvYkRkdTQ3WjRqcGpGNm9y?= =?utf-8?B?ZnBBdkxyaEd4dDRZNXJHTUl3dVJqY29PbVF1SWV5UjBaazNyYXpwV0d6RWJY?= =?utf-8?B?cytyVVJZKy9FK3IwdjV5alRxMUdmMzQ5Z1grTlB3ejQ0dk42WVo0MlpIZXJr?= =?utf-8?B?SzlwTnZCTC9Od1NnVzNTVkFCaGo0N0QyOFRUdEtUVEtWYmwvM1RCdHZYRjNT?= =?utf-8?B?Y0M3R0l1c0E0bUk4dkc3TUhBbG1zUlc5Wm9keFdlNWVMQVVJV25NQUdJUTN5?= =?utf-8?B?d3NiSEsxQmcxZnNDN1RjcXNxWkpZZ2dkOUIxY2JmM3czQjdhU2lTZ2ttTEYw?= =?utf-8?B?SXkvelFueWlIZkRTUTFhYkRwa0luaWMra253QTEycHlUdEYzSkNrNXRpUlZS?= =?utf-8?B?dHlUWTViY1hDMmFNQzRmY0lNTmtoWlMrWml6THliWjArUDdReUdPVi81Q3RY?= =?utf-8?B?cWlZdGVEZCsvdmZCVUUzN0RwR0RTdFVmNEYxaWxoUGJMTlZaNFYwSFVMVFYr?= =?utf-8?B?bnprY0tPSjNURE9abVoyWUMyd3FnVlhVMUtlODBHVzB6NFpkaFJLcENCa0tt?= =?utf-8?Q?vyw0ubCq2S9RR?= 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);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QUU4R1RGWjdrK2h1TXViUFBNeXFCbTVmeXlCSUp0MlR1aklRVzVUL2kva3M0?= =?utf-8?B?QWNZRkYwd0lOSzd0aUY4a0h4S00wY2V2YjBqeG5oTFJEMkorZWh4RDdNRHl0?= =?utf-8?B?UDZpVmEzRk5vbzJDeXVyQ2V6S1ZYbmJxZUZ5emd4dUlVc1RyTmMvNHZERldC?= =?utf-8?B?Ymo1U1JxZkVzeGVWRHp0TGJjd2FVbFdjMzdQWDg2b0FhVGtEY2R1b0dDT2wy?= =?utf-8?B?NWtOQjlqU1VqMmdyeXM5aE5TeTN1WmsweUZsOUQ5bGphWnN4aHJ3cVNTck91?= =?utf-8?B?N0dGZVdBZzRqVWZLazZySWpOM2dQc25oTElDT0tReHAxYldlMXpQUTRKUmR5?= =?utf-8?B?QksvUFZVc2E0VUY1QStkcmhtSUtXWmZJbXJ5bStqZ1FuRzdvdlJuM0twMm0w?= =?utf-8?B?b09ZNjVaZnlRQjZrM0tNSWJqMzJzWmUybkpFaU1yQlZiRS9ZZVpWaVZDZXJi?= =?utf-8?B?U3N2dWxtK05vaUIrK3NDMXVTYUlteEM0dEFZQkE1RXN2VFNSN1Z6dExqU1Nz?= =?utf-8?B?ZWVFd2JCSWFwWWhtQlEyZVJOeU1mTUgxSU1qelBDVzY0KysvdHBXaTY5dHh5?= =?utf-8?B?MGtnZWprbS9XaUp0dm1IZVdYdm1xcmVJeFJFa0IzdW1DT1JnMHk2bzhxdlJX?= =?utf-8?B?SmMxbVh3NGJ6UlRJeVRpcFNCVDBxM1FFZDNkYnVhVDZEZ2pPVjYrZ3gwZFJJ?= =?utf-8?B?MUdmSkdaNWVleU90VmwvakRYVUU1dStjd1Z4S29tS3krZERRSEhsbzRmMlJw?= =?utf-8?B?MGFoQUVGRFBZMmg3eUZXb0orcnZ1Y1ArUnJEVjFUVmJ0UFRPdHFxZzVwWER6?= =?utf-8?B?L1k1KzRoVDYyYUtybHdDQUFzb1F2eW02NmhKak1aQkx2eENldTZCZExkRDNh?= =?utf-8?B?Uys3VVUxS3NQUU94WXpUL1lxdlZCNC9ybU1qYlE1OG5JQnU0bW9XNU9FQWo3?= =?utf-8?B?VFV6TkpFVEJMVCs0MHVIRUtySlZsWHB1bGp4WCtYKytoeTEyWHNuQUtXMzJB?= =?utf-8?B?Y1BCYTJXbGZMdFZCTVAvM1ZnaGxZejVDb0RpaDZCRmFDaFlzb2VEOFNZOEUx?= =?utf-8?B?VWtDWkpaK21yRmRweGkvUDg2RmZsV2RvY1JweE8vdHR5VWx3Z2Uyckk5ZHhM?= =?utf-8?B?YjV1SjBranp4ZE92VytlWG5JbklWU3ZMRXFMNTJkUzIyVkxKUlJnZUxTdnhy?= =?utf-8?B?MGFpWGxSb1NuM1pUV2o3U0JDMjBIbVAvclMwNVg0ZzNoZkF1SDNXczcraW9w?= =?utf-8?B?eXJ6VGRBNElTZ2ZMM0VWL0ExamRtODZaNnkzUWx6UHNMUS9CaG1SclpycS9O?= =?utf-8?B?NEExK2F5bWloMDNVQVhvU05ldmF2MTlHYXB1bGE4VVI0cTJQcm1uZnFRUDRj?= =?utf-8?B?OXZxdUpsK3M2bTBUc3dmdWxyNWM2VXVRNzZTRUdoZVVsZitjOUpJQ1N2MmpK?= =?utf-8?B?a29tVXlDK3FtKzdDRzZSRUJxSDBaRUl3bEttZ3NuWUhPbTB4TEtsVWltREpw?= =?utf-8?B?ZEVsS1BPeGR5U1JzRHlsYllPaUpVK2VkSFQ0VEg3VW1aeHJsWlZacFZtSHNP?= =?utf-8?B?cjVkK3l0V0xuWm85cHBYblNEdFAxRkhYcmQ2a0VZQkIzQlpCVW5lbjVUR01q?= =?utf-8?B?R2ZMU0ZJUkFVYThzM2xwYzBtUXYrb3BCdTJvRFdlTHdmcGFqYWVCbmlEVEpP?= =?utf-8?B?aDk4RlRWNnYvcWFJVVdKendSdFh5cC9Dakt0ODBRYTEvWnR2bm41clp5cllk?= =?utf-8?B?NEdSWlQ2L2YwWStGYVdWS0o3bGpmTUJYcjJZeWRYMlh2WU0xSDhVWVpNVFJn?= =?utf-8?B?emRiSWxDSzFwUFI2S3FkekY5TzZjOWhZN01jbXcxTExRUVVTME1DK2Z1Q0M4?= =?utf-8?B?ZTV1TVNiTy9MNXNxUVpEOVdMMC9CK0o1aWl2Q3ZxK3Vvd21tYXZBQzRXU1Fo?= =?utf-8?B?UXk4QlBWcUVleEVKUGFuM3dKK0VlS3pyQnoweERpWUtXZGN2TTBBMUlSdXZC?= =?utf-8?B?YWhqMkpsVUlZaysyZmMvTzA4a0I2bE8vTUdBNThZSWdGUStFenExV0hnOE8x?= =?utf-8?B?MHFHK2NXdi8wOG0wdjNlZ2tkSXQvd0xtK0RsSmdxekVOdG9xWmdTY2YvaHJu?= =?utf-8?Q?oLg3H8/FQKc3B80wrXnm1NXfR?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f199c9f-42bf-4bfc-a9cb-08dd34a7e50e X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5070.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2025 14:29:46.5305 (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: XN8yoatDrQkQKhiAenGBaSOe0BOnXr+6vCd1xCJ3fEnuxCRtTseDM43uBOnl3+vLrSIyTgPQpGynmC+Iio+lrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7889 On 1/13/25 15:10, Rik van Riel wrote: > On Mon, 2025-01-13 at 08:21 -0600, Tom Lendacky wrote: >> On 1/12/25 09:53, Rik van Riel wrote: >>> >>> +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? > > The calling code ensures we do not call this code > with more than invlpgb_count_max pages at a time. > > 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? Thanks, Tom >