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 D2670E77180 for ; Wed, 11 Dec 2024 20:11:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 152396B0082; Wed, 11 Dec 2024 15:11:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 101A16B0083; Wed, 11 Dec 2024 15:11:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E96466B0085; Wed, 11 Dec 2024 15:11:36 -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 C74EF6B0082 for ; Wed, 11 Dec 2024 15:11:36 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 75910161285 for ; Wed, 11 Dec 2024 20:11:36 +0000 (UTC) X-FDA: 82883772888.18.41AB8B1 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2069.outbound.protection.outlook.com [40.107.102.69]) by imf17.hostedemail.com (Postfix) with ESMTP id 968C540009 for ; Wed, 11 Dec 2024 20:11:15 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=fjwKYyoz; spf=pass (imf17.hostedemail.com: domain of Nathan.Fontenot@amd.com designates 40.107.102.69 as permitted sender) smtp.mailfrom=Nathan.Fontenot@amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); 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=1733947875; 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=62pHCL2VlxfSFT8fdiSgcQlLUhgHKZ3hPjdPCdsyal0=; b=39nZM83e7BVD+g2gWLntSYOWH/tFzNjINdVITnkiKR0LwK5i18gwqzK/OGSe4wLYBefbFl plmAC9HKhllVkPaSkVsuZMdgqsQWCdkua//BaAvHpmMnM+IK4SdM+WbLbfwHebGUkhviok XfbUNr3IxbEdgAuP/EaxQlD4md1ZhTM= ARC-Authentication-Results: i=2; imf17.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=fjwKYyoz; spf=pass (imf17.hostedemail.com: domain of Nathan.Fontenot@amd.com designates 40.107.102.69 as permitted sender) smtp.mailfrom=Nathan.Fontenot@amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=quarantine) header.from=amd.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1733947875; a=rsa-sha256; cv=pass; b=FVWF5HW2YYV+WSMAcSEyRL8Ohgtz7gdiaNWlYWhCuWkSU+KN0Hd48aqVZ5cz06CLXqO2WE ObC5kJwLx9/8lw1dZugpf5VbmDsx4ai/NKD8E2h6ccTzFxZSjSOibGL2Ffr0j2ywEG7i68 5AhAATQh1E3RP43gmxlPlwFLqP8fOrA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cqHkiOt7/FCi4RnfKeZuhSgW1MjzrhBmf+khUkWwjoK2JO7iRlncJkztRlg2NRYNK0gNzt87LEqRjjzjaiTagkmHQvEl4iUoIt1xHQVuwIc8msd/4QZpTSNxOY1WviUnW87Ir9yYnWSOve9TLagB7K6Hl4skeIyFHvDeekjVavByDs++Uzki15sFFwGMAKAnWvaPPgjyh+qSQ8lWQbjfRVKRZ13T93pvFi/sE7mp9IXvOVCwk1inbOs8PFeE9Ij4LBykJccHQ67uECRJl+aIGGmvHYWsmI/E83v2NiZUkeiNlisIcrHZrHD1sMZbA4mxLp5QRcj2CRXf6CRZZFQolw== 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=62pHCL2VlxfSFT8fdiSgcQlLUhgHKZ3hPjdPCdsyal0=; b=XsTUo6N8Q0LePZbrZQzMwSKgFzIPkn1Q0W6Rl7CyR9A43FlhQQyWjCg9pAtmEKregdymZECQU0X8xgdN6mG3C3sqNjUCmrQZp4I5qkwBNRcD7fZAHzMO8xMlH4iVjBTzaqMDiPJ07HGaDqtSQzl9klTjZkBLXBJxsUD8OAf+PIShd39NnX6r8QU3S1jB8ctq0y+o+DEAT7Sw3NgYdkzHHXATGI1NRzjNPHYtBysGL7hXiB1EtKjRVVFM+7vbbJobTVPFM1eD2LtoaNzjFMCCDl2iHIPzuvwN/Se173S6+S6M32za1bwAdr4O8ylwDm2TOcrzGbKwyuaIco7DRniclQ== 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=62pHCL2VlxfSFT8fdiSgcQlLUhgHKZ3hPjdPCdsyal0=; b=fjwKYyozLJ5IGxNc+E3mPZMt2ljpWuHjH7M/SBFvYNA55XS0RQ7k68VbTENH6A9Rc7Q1pP2deILCZNeTFJkA850vYkC/QsgmvmykMWbRKuojLoWgARlchh6+CINxHg9StLINJUTZKt2h7ZpKKdMgDDmNqcN9R+JAq+0Xf2VenO0= Received: from MN0PR12MB6222.namprd12.prod.outlook.com (2603:10b6:208:3c2::19) by SA1PR12MB9514.namprd12.prod.outlook.com (2603:10b6:806:458::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.15; Wed, 11 Dec 2024 20:11:30 +0000 Received: from MN0PR12MB6222.namprd12.prod.outlook.com ([fe80::4044:a263:92a1:6b3e]) by MN0PR12MB6222.namprd12.prod.outlook.com ([fe80::4044:a263:92a1:6b3e%3]) with mapi id 15.20.8251.015; Wed, 11 Dec 2024 20:11:30 +0000 Message-ID: <6432d25a-e4be-4628-88c9-24441b623d40@amd.com> Date: Wed, 11 Dec 2024 14:11:28 -0600 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] cxl: Update Soft Reserved resources upon region creation To: Andy Shevchenko , Nathan Fontenot Cc: alison.schofield@intel.com, dan.j.williams@intel.com, linux-cxl@vger.kernel.org, linux-mm@kvack.org References: <20241202155542.22111-1-nathan.fontenot@amd.com> Content-Language: en-US From: "Fontenot, Nathan" In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA9PR11CA0029.namprd11.prod.outlook.com (2603:10b6:806:6e::34) To MN0PR12MB6222.namprd12.prod.outlook.com (2603:10b6:208:3c2::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR12MB6222:EE_|SA1PR12MB9514:EE_ X-MS-Office365-Filtering-Correlation-Id: a00dd64a-84e0-4d5d-4a4b-08dd1a20006f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Mkg1TTdhUmk2MWZPTVRmdWptRFZ1MGcweHZvTlIvbXhSYVhIbENDRDNDZ3po?= =?utf-8?B?RndTWGFzTXUzcFRveitEZlNZVzZjV3hSNW5Wb1hybENSWjUrVytkUDA3RGR0?= =?utf-8?B?d3pQVzQrMHRVOVkwVmpaZFFzQlZyWm9ON3B0VnJoaE84dzdvRWplbk9sdFpj?= =?utf-8?B?NVJVZE5zdm1LeGxHWmNPeFBtdGcwWVA4aVNUU1d2S3ZIYnlVNEc2ckxwb0Yy?= =?utf-8?B?eGNmUkJPd0p1OTNZb1JHNkVTQkFLZWc0UWN1Y3c3Uk9Gd0dvZFQrb0ljR1Jo?= =?utf-8?B?WkNleTFsajJZc2RBRWxwYkVQNXF2TDBaUGJJVmdxUVpYamNOYjVqUnh1cFE0?= =?utf-8?B?aWNnRmFvb3RKcW1jMWU2NWJMMURHV0xBSFdNdk8xZjVtZnRNSndybTJpY3dP?= =?utf-8?B?cEpGd2l6NkRiVE81VjlQNVpnMFVNOHluVTdCVjNJaDk2eGRFMjZyNWZIclRP?= =?utf-8?B?VWlPamk1aGFVbGJuZGZCVjBhaWRJbGp1T3VnQkE3M2V4dUtaZ3l3NG1ERWVQ?= =?utf-8?B?WmhMR0N5TUROUUpNT0ZBZDA4cUg0QWZaTWRmeE5seWIzK3ErNnRDY3daa25V?= =?utf-8?B?RlNYbFVPaFEySnlsbzRyYkFpeHREZm5yMnNwZlNPa2VMNVZtZ1JpdElObEMx?= =?utf-8?B?SkNERk0xS00vSStOUTBnN0U0Q0ZVaXAyVVlGaHJVU2MxQ2liVVRrUXZ2WWNw?= =?utf-8?B?SWd5T0ZtakZ0LzNGSkdLNFcyRXFDZzJPZC9XbS9pMGhoK1oxQ250MEt5WDQy?= =?utf-8?B?NUM3UjZTeFJUUmNuNUY5SDBkR0o1b1loZ1JmMVFlbERZNjNGcnlSMTI1YVNu?= =?utf-8?B?d09iYVpQN2o1NVJGMXRKVGpyaWxENzVWWEtEUXNRRWNSZ2VLYlFTRUpBVkVu?= =?utf-8?B?eS81ako3TThzS3oydnFIOU9KbWJReFh0VHU4KzJnRkFIS3FyWkl2Zk5LaUpi?= =?utf-8?B?cWdqVVdOak8rVGsxZmc3UTVXMnJKeGtYUDJYZWsrYnRPTlhzZ2w2UFZCTkg5?= =?utf-8?B?K3ZWTmx1VHNhZVJ3ZzFMUGowZyswcUs0VFRiSDc3UEl6dUdRcjFZZmR4c3hn?= =?utf-8?B?dklMUStnVzRZMFU4ZWxCa3lMZGVUd1FwOHVZMmM4OVJrOWVpMjlsTU5ROWtK?= =?utf-8?B?RWY4Z3grRVdORnhEYm1DSjMyVGZET21VL0R1ZEJCTzI2cGFsYTZjYlNaeWRV?= =?utf-8?B?akZ3bXUxWkdRMnBJbnpJMlFsV1dJNzhhSjgzamNpU2drakhSeHljVGllR1Ra?= =?utf-8?B?LzRWbEpOMDBQd3FVMVdOR2h1UVB1NFpxUStCaVhhQW1WcUVqT1VXMVZCU0lX?= =?utf-8?B?WUFTSEczbU5KZjVEZ0hRQ3VWcGZXNmpzS2p1SnFyMTJSY01lektoTkNVakt4?= =?utf-8?B?a21YNTJFWEhQam5tekpOME9ZZ2JySXdyYVd5anpDbm5IUGtMOExMdWFJYWxh?= =?utf-8?B?c2xpeHYzRzBEdUI2dThEYmpoakdmT0J2WmlXOTE0TEtESmJOUENBM3dBbnUr?= =?utf-8?B?UUh4a1h1ZFhKUGFhc29PSko0MHhYSmJuS2NNbERtMnNra1k0WXVqSjBoSUFB?= =?utf-8?B?TmtFZEo4VDdaQXd0aFZIcHZkOEhOVUFFMTlONFUrS3JVa2RxQm1rS3JrRmoy?= =?utf-8?B?SEFscTBEYm15VEF2MWJOVHlhZjZhZjM4dkVNajUrblg5bXkrcmU3QjU1OGF5?= =?utf-8?B?TENySjc3V1BRSjdjaHF3eE9wWTZ1Y1lic0lzMDNKaVNVRVpIZEt2RmpBMU9M?= =?utf-8?B?WGNHSUxnOVFITUtpNVdtWVd4U1NBYXIvbFRGU3dNblM4enBIcWErVzRVMCsx?= =?utf-8?B?amRyWlUrdlYvL2dad2crQT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR12MB6222.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VE5BZjFYdEZVUnJjL29LVVdiNUJZMnd4eXl5K2lpYlYzR0hiTkEweVI0L1JX?= =?utf-8?B?OGUrVkRQOFh4NVNTOTRRZEozbFFsbVlzVWJHQ0FhbUl4dmxSbkpXOUtma1dr?= =?utf-8?B?Si9rSWx4WlJNUWtWM3h1QVpIRnNTMWJtUnN1bmI2Nk01T0R6VVQxNG9DVlVB?= =?utf-8?B?M0NvakNnMEF6cXBEaVBPUjg1cTc0RnNLanBIeld2bXNBUGN0MGZmY1hLY3Nl?= =?utf-8?B?eDdQQ3o3a1NsR0pzQVN2U2FSb0dJMjVadmVyTXQ4MXIxUzN6c3lPSU5YMjZK?= =?utf-8?B?UWprVDJIYmFVKzluOCtkQTdvcHRsRmtaYlhwL09jaU8xekhiUWJnbXNuVlZr?= =?utf-8?B?UXJEQ0tKa204WnY1UkRKWURNbXAwZFBRYjlrUmwxVnowcWQ5STdhZ0RqVkVS?= =?utf-8?B?L00yRk00N05iQnlvOWZXcDJuTE9uMExvZTdGRDdzN0prOER6cmoxYXRZb0w1?= =?utf-8?B?b29lQm1DYWxtVjR2SW1uTkRZd3JqN3htUENLcHdtNzJhZVJBY3NjV0tSUGM0?= =?utf-8?B?RlA0dTlPWjdLbzZheW1VMUw5Zi9TTHFBUVU2SkNNUVVEeXZYNmh0ZTRJRFFh?= =?utf-8?B?Q1VsZXE5ckdqbjVDL21sd2tmTGtlaGJZN3VNYkRjTHVXN21Va3lIbUdBcVJ4?= =?utf-8?B?VUZRWFBhdldqS2h1WENOZVg4b29ZZUNhV3RjK1JZZDFOUGkzV2ZoZzFJNUtw?= =?utf-8?B?VVBzK2tESklNNjhwdm5wdUZVN3NxbGZlR2JMRzVMU2p1UjljMmpZZlZjSTdy?= =?utf-8?B?LytyMXJLRWd6NDJIMzFMS01ZYnh1UlJWVGlyRG9NaTJ1S2NmSm83TmdvVHli?= =?utf-8?B?bEtWKzhhc2xiQmhNbWpuV0d5Z1Q5MDIrZDMzOTRZbVk3ZDVNeGVuNml2djRY?= =?utf-8?B?YlhJbkJvbDJUUkdqNURhaGZpdVpnNFB3bExnM1o2KzN4MlZyaHFIMWdwbFZ2?= =?utf-8?B?UVR6MGt6TUU0YlFkK3ZMTnFnTFgvMHlnRjh3MEZTSGJIRzB3ZE80Wk52Zm1q?= =?utf-8?B?Z0djam1zUFRiMWFjKzZCTUN3c0t6VkFrYVk5eW1aeXd3Y2w5VHpwMld3N3E2?= =?utf-8?B?RDlTeVV3TWlTV0h3LzZnSXlhZzJ1UkNGSGpJeFpXUnREMER6c0tpblpuVE5S?= =?utf-8?B?cDJjQVkxS25oaFpMNDIwWi9IZE1ZeVJYOFB0a0dGZHpGQVk4WGFKUVh5WmUz?= =?utf-8?B?VmljRTdYY25NSDBLcm9lL3NoN0c5U21BSDltNDdDb2JkTGx5T0ptSjZLM2Rq?= =?utf-8?B?ZGxGQU1yVkpXZ2ZHY05JZ2J1Y1ZpLzdCdUFKR1JYOEhHOE93c2Y0NGFLTzZa?= =?utf-8?B?cWJLS3ByNVRGakVjS096S2J4TEprSzR6UXpsZkJORVF1M29mdlkrcUs0cjhv?= =?utf-8?B?ZXRXdGUxWHNsSzFzZUJidFc5Ly96cjM4VlpmWE41Q0N5K1BCazFxU0VnUlpt?= =?utf-8?B?d3NRVFd0bHJURWZEdU9Ob3VsVGdSZkFwN3A4L0p2L2tBak4xTmxhVGVjYm12?= =?utf-8?B?bDk4OWJLNXlvNHBWZWovb2FZOHlaMGpXU0U2YVpxWnVaUVAxSytVa0NKMFg4?= =?utf-8?B?ejkyQ3FUelNEbjJIZHlWQTRlN21tRzVVcFlXYXZoSjI5SmF1REVXQVFNc1Rh?= =?utf-8?B?b1c5YTkxVlBjdXdDK0tod1JKQzh3aUpFbEpKMW9YRDhHbzNjN0ovZ1JBUVJs?= =?utf-8?B?VTJFVUxKS040dkl6SUhNb0VURmRnRkFNV2tLMHF5MXZXUm43WE40YWNOZmU1?= =?utf-8?B?aGdoZHVmTFNhSmowQ2kvRENBVkM1KzkwMENiM294cWlwMW5yODFicXRkMjI1?= =?utf-8?B?b21rbW16d1FGczZwbHNybW5CUEpFRnFyRm1YbERIWm95MkZGbCtEZ1hMZXQ0?= =?utf-8?B?MlF0Tzc3dldCNHVscXVFejRZa1hGdzN0cE02bE5qbjR2QWxsbC9nS3Bka2Uy?= =?utf-8?B?Q0F6WmVSTzhGNGRLRFJWYkFwWk9iRTZ1RnlVckduZWsvSmF2WHN3U1IwbDRu?= =?utf-8?B?cTZJcnA2VVVVRmRRNHJhU3FQTVQzUVJKb3ZiT3V3S2Z2eEFjWHZRSnZIN2cy?= =?utf-8?B?Z3B1emd5cUVRckpqa0U5UlRaTkt1THNncWdtUTlOdURtOWpHdFBzTzhqVjNG?= =?utf-8?Q?2W+fLDgCMbixUGWiKUnEPeINL?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a00dd64a-84e0-4d5d-4a4b-08dd1a20006f X-MS-Exchange-CrossTenant-AuthSource: MN0PR12MB6222.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2024 20:11:30.6600 (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: XYtsXel3NrgNQLd3rni1by2UZnuDoR+Qvrz41dYWo5+/anWOZbXhXfvmdoHy0ERddKJHsfWGCfBmexZaTzuhpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9514 X-Rspamd-Queue-Id: 968C540009 X-Rspamd-Server: rspam12 X-Stat-Signature: rrtr56j8b7nk1zjjr1dq86ypkhtx37bt X-Rspam-User: X-HE-Tag: 1733947875-448193 X-HE-Meta: U2FsdGVkX1/ajIzoZl8TNYDW2TigUwPeVr329PyuCckSlmB05bLumba5Ot9TRTP8SVzC7cLNhKtVocbuO6EvRqOQ919SQ+/v+Q2zDx26qzIzIf7PdGy9Y7/fiiDi1h12Xb6istu3qZUDxlCgpUECS6pfkCc1i9AaFWplRbp5W8BE4lG5i3LJjXSicHGHv88CN3AR9MQw3YG2+GRARWWsU4AfqeZwrOzGM0VhY4Xs0nFXkSzYz0kVT3/i1bN2Vb+aHDM9GV1n8pI7kEZY2/gtDpwmP06t/bfBJajxpYzpDLFP2K6ZiuZH98DDsVUYq5Z1D+rjyJKYWaai+Z1OwE1/ctQeeg4ozL+k20CoTGx5Zm0/SNXvYoJsx6o78iDPoEwAEaS8xJhXJKPuQ4Mtm3PgXHJN/ay+HAV+E5gJMy3YDsRbCd2DGarCyfiOJzoUWsT9kkWytBQSqyKTMcmrG1dhH0xAhA4217vipAL6yDdS89DDC2Qos5uLzagRM14p/pyxCswMppOEL0HI9HMXN5HFRyAWyrC5Kr+Vb1AVEkcHRT1ODPiC9LgeKIw5JHGIpPj9s74GkI7xsw8jYzvzm/fC+VQLNEt02fb9mwPfGECHmwd1VGry78sU/0MrwaAlbFUr7saW/wV44KaQNvpC4sZrKY4f/f/ICmcn46u57hRwxB7R/FqghPD34dRSLX97NqHIwcURjprmebFtM9Wj+x/GCN5nIjWVxXwpfAK+4tH0UulEexgLL6tQnPQQK9dJsbehIq5PZmQWpIMoaPBamQH7PxMOTVjujHcy2OqAz03YhgM34DPOfeGWUqff7tMBkf74UTA/VCHy0bf/tdUCvV+3lj1SAd93yruDGuFV0hiiQBA3nEMlTVUw0YwkfyrXS8W3epbswQdvTt+YeRBrScua9EJLT3HHiLUMg4dTjFve72InRqV0waWhS5mZUowdYoYvrLz4EOAoNnC2oY3DsAI nnU0SxNY BN0tWnI/fKLEuKdjJeIJzhgLSYj5Jcwxz8+GmF8SVwBHU5piFcSijSgkLC1/CaIGN4KfiAzkn1PFvpmfJGx+wVBAHpjT1Nc1oIS73h38Cl4VqzxFpI8Dl2/xRCpFKXZBJUNCHVWqAEJz+WOprojTCQVBNy8oihd+JWfVwJ9VfSjkZ/khySPMWeQ4drjYv/2cuYt3OfSmqWTflpOFqakDAanA2prnvBcIqzbTy0cMovQmbsW+m+Ck3G1IYJLmi936+x+WdXTSnAPVQCJEDUH0lEQXz7QMNuqA4YNoqo6kcP2HclKhCDTnCe25HV84A0vriR3GhWh3KJS5K83WD/dj+O5TDMDnEFIAl0fM/3INOLgYg0cUV0w/DkTmuDZpKy1CRNbCfoFiW2C800Ev+t+ELm4yQ9P5rUMuhcG9g5NDrZXHUs1czYW1iJm6bauSRmXvMlXYkgQFGRa+5vPtbtVLco0Pzlk87QV43H7vCHy8ux+C3YuxBY3bm415ssg== 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: responses below... On 12/11/2024 5:31 AM, Andy Shevchenko wrote: > On Mon, Dec 02, 2024 at 09:55:42AM -0600, Nathan Fontenot wrote: >> Update handling of SOFT RESERVE iomem resources that intersect with >> CXL region resources to remove the intersections from the SOFT RESERVE >> resources. The current approach of leaving the SOFT RESERVE >> resource as is can cause failures during hotplug replace of CXL >> devices because the resource is not available for reuse after >> teardown of the CXL device. >> >> The approach is to trim out any pieces of SOFT RESERVE resources >> that intersect CXL regions. To do this, first set aside any SOFT RESERVE >> resources that intersect with a CFMWS into a separate resource tree >> during e820__reserve_resources_late() that would have been otherwise >> added to the iomem resource tree. >> >> As CXL regions are created the cxl resource created for the new >> region is used to trim intersections from the SOFT RESERVE >> resources that were previously set aside. >> >> Once CXL device probe has completed ant remaining SOFT RESERVE resources >> remaining are added to the iomem resource tree. As each resource >> is added to the oiomem resource tree a new notifier chain is invoked >> to notify the dax driver of newly added SOFT RESERVE resources so that >> the dax driver can consume them. > > ... > >> void __init e820__reserve_resources_late(void) >> { >> - int i; >> struct resource *res; >> + int i; > > Unrelated change. > > ... > >> - for (i = 0; i < e820_table->nr_entries; i++) { > >> + for (i = 0; i < e820_table->nr_entries; i++, res++) { > > >> - res++; > > Unrelated change. I can remove these unrelated changes. > > >> } > > ... > >> +static struct notifier_block hmem_nb = { >> + .notifier_call = dax_hmem_cb > > It's better to leave trailing comma as it reduces churn in the future is > anything to add here. > >> +}; > > ... > >> +++ b/drivers/dax/hmem/hmem.h >> @@ -0,0 +1,11 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +#ifndef _HMEM_H >> +#define _HMEM_H > > This needs a few forward declarations > > struct device; > struct platform_device; > struct resource; The next version of the patch removes this newly created .h file but good point for any new headers created. > >> +typedef int (*walk_hmem_fn)(struct device *dev, int target_nid, >> + const struct resource *res); >> +int walk_hmem_resources(struct device *dev, walk_hmem_fn fn); >> + >> +extern struct platform_device *hmem_pdev; >> + >> +#endif > > ... > >> #include >> #include >> #include >> +#include > > I would put it before types.h to have more ordered piece. will do. > > ... > >> +extern void trim_soft_reserve_resources(const struct resource *res); >> +extern void merge_soft_reserve_resources(void); >> +extern int insert_soft_reserve_resource(struct resource *res); >> +extern int register_soft_reserve_notifier(struct notifier_block *nb); >> +extern int unregister_soft_reserve_notifier(struct notifier_block *nb); > > Why extern? You're correct, extern isn't needed. I used it to follow what is done for other declarations in the file only. > > ... > >> +++ b/kernel/resource.c >> @@ -30,7 +30,7 @@ >> #include >> #include >> #include >> - >> +#include > > We don't usually interleave linux and asm headers, moreover the list seems to > be sorted (ordered, please preserve the ordering). > Good point, I'll correct this. > ... > >> +struct resource srmem_resource = { >> + .name = "Soft Reserved mem", >> + .start = 0, >> + .end = -1, >> + .flags = IORESOURCE_MEM, > > This can use DEFINE_RES_MEM_NAMED() as well. Yes. I went with this format since it is what is used for the other two struct resource definitions currently in the file. > >> +}; > > ... > >> + if (sr_res->start == res->start && sr_res->end == res->end) { > > Wondering if we have a helper to exact match the resource by range... I don't remember seeing one but will investigate. > >> + release_resource(sr_res); >> + free_resource(sr_res); >> + } else if (sr_res->start == res->start) { >> + WARN_ON(adjust_resource(sr_res, res->end + 1, >> + sr_res->end - res->end)); >> + } else if (sr_res->end == res->end) { >> + WARN_ON(adjust_resource(sr_res, sr_res->start, >> + res->start - sr_res->start)); >> + } else { >> + /* >> + * Adjust existing resource to cover the resource >> + * range prior to the range to be trimmed. >> + */ >> + adjust_resource(sr_res, sr_res->start, >> + res->start - sr_res->start); >> + >> + /* >> + * Add new resource to cover the resource range for >> + * the range after the range to be trimmed. >> + */ >> + new_res = alloc_resource(GFP_KERNEL); >> + if (!new_res) >> + return; >> + >> + *new_res = DEFINE_RES_NAMED(res->end + 1, sr_res->end - res->end, >> + "Soft Reserved", sr_res->flags); >> + new_res->desc = IORES_DESC_SOFT_RESERVED; >> + insert_resource(&srmem_resource, new_res); >> + } > > ... > >> +void trim_soft_reserve_resources(const struct resource *res) >> +{ >> + struct resource *sr_res; >> + >> + write_lock(&srmem_resource_lock); >> + for (sr_res = srmem_resource.child; sr_res; sr_res = sr_res->sibling) { > > Can this utilise for_each_resource*()? > Ditto for the rest of open coded for each type of loops. This one could use for_each_resource(). There is one loop that cannot since it moves struct resources from one list to another. > >> + if (resource_contains(sr_res, res)) { >> + trim_soft_reserve(sr_res, res); >> + break; >> + } >> + } >> + write_unlock(&srmem_resource_lock); >> +} > > ... > >> + cfmws_res = DEFINE_RES_MEM(cfmws->base_hpa, >> + cfmws->base_hpa + cfmws->window_size); > > Can be one line. > But is this correct? The parameters are start,size, and here it seems like start,end. Good catch. I'll fix this. > > ... > >> +static bool resource_overlaps_cfmws(struct resource *res) >> +{ >> + struct srmem_arg arg = { >> + .res = res, > >> + .overlaps = 0 > Keep trailing comma. will do. > >> + }; >> + >> + acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, srmem_parse_cfmws, &arg); > >> + if (arg.overlaps) >> + return true; >> + >> + return false; > > return arg.overlaps; > >> +} > > ... > >> +int insert_soft_reserve_resource(struct resource *res) >> +{ >> + if (resource_overlaps_cfmws(res)) { >> + pr_info("Reserving Soft Reserve %pr\n", res); > > Btw, do we have pr_fmt() defined in this file? Yes, there is a pr_fmt for kernel/resource.c Thanks for the review. -Nathan > >> + return insert_resource(&srmem_resource, res); >> + } >> + >> + return insert_resource(&iomem_resource, res); >> +} >