From patchwork Sun Apr 13 22:52:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ira Weiny X-Patchwork-Id: 14049459 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) (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 DA70419539F for ; Sun, 13 Apr 2025 22:52:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744584723; cv=fail; b=Kxy3/bbOzV3heBwx1/ETmCsMgHTQqxOYnFZu4po7f8DuwuliJl95TPjS+4P8w8nubkmY36vhgJQcyaWQBDdHc9okJaphntAZIHQjr3tkaNY720EiNmW/TNyedPaDL5gonX1RCf43aZMXFwReYTOF8nHz4r/RfRa7RjEPO6bdOAs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744584723; c=relaxed/simple; bh=V3fWJr3Em3iZQf2yytjyz4d5nf/SXSyrd7uDfepAKP4=; h=From:Date:Subject:Content-Type:Message-ID:References:In-Reply-To: To:CC:MIME-Version; b=Y9i/5esGhXQMkUUyNYV/dXZYs/CE6mz1pmCJeLPA0EP06/NpVTFwydXDZ84izZKvo83T8X18TjupkDMH04dyURUEa2DN8ibke5v69rSoFp1dxQtDm2jrYvgKQtWhn4gsx7Al2eQNcuLEMHzLUFVragAZpgTRUjJEzIlpnGA6AjA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=MqS2Zc9T; arc=fail smtp.client-ip=192.198.163.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="MqS2Zc9T" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744584721; x=1776120721; h=from:date:subject:content-transfer-encoding:message-id: references:in-reply-to:to:cc:mime-version; bh=V3fWJr3Em3iZQf2yytjyz4d5nf/SXSyrd7uDfepAKP4=; b=MqS2Zc9Tq3OuGCNV7/PK21yuqjeIi3f2lYIhV0aKdt3+UewZ+7Wvl9w8 7us+RAsqFZome5OPUEhw6lupFbyczkNrQTR+TqeLyvf+ARMx5WlQ8ZNxj x1pT3by9R1q128e+5yE0UkhUWtgT/QktsoEQj4SJQ+74tAznWmfwS0ZKA yUp6ZMH/YF2rlUTiBng2hgdYj+M70pZ3KKqaKnoodtIwqRHellH6OJVGm cHYcT+cWS2S5Pm3n5c/+x/tpzE/ce8kgof1OXISiNNMbBffo1QVKndekx 34rv4YcyfLbhYF8PW1D1ChxPV6joPw/4bmP+b/q9gTh3Kw0S9wtHSBLLO A==; X-CSE-ConnectionGUID: uX5eDUv8QreMr0MOHl3zeg== X-CSE-MsgGUID: IiZHN0BpSbm3e5ahDMRxXA== X-IronPort-AV: E=McAfee;i="6700,10204,11402"; a="45280891" X-IronPort-AV: E=Sophos;i="6.15,211,1739865600"; d="scan'208";a="45280891" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2025 15:52:00 -0700 X-CSE-ConnectionGUID: xVHgEbcBRbWcSny/L7WzzA== X-CSE-MsgGUID: 64Ik891lQGq1Y9+T1Ul4BA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,211,1739865600"; d="scan'208";a="129657430" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2025 15:51:59 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 13 Apr 2025 15:51:58 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Sun, 13 Apr 2025 15:51:58 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Sun, 13 Apr 2025 15:51:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DWEJtkC5NvYYRQS+rchlsHU3+eIR4vYAeMxNmlXurb5oBWbf41FW/liNyXdFNLVJq1RMtfH2fQKeoLg/yKDan7eNO+gll7MAPbNlmQGkDgllHh/yZsUXV7k22rUqPq7zPyeFaWV8e9AOFnDH5yEtbWuqjSN86JWlJzfURt2zn6py6FNuUnqzyP8ZMgsRAUnzWuKxR+C4QLcmyOf8jE/Gidd3g01cMyul6/nSoobQTgle/e8/NjsyWwcEHHrHfM+1AM9UdDS/pN5CYyXLBcviCOO+2HIWhi9zLNLD/XOmeXqrMKTASnCeBv+ls/VQioDNjeOFv40ZEMdRjqbQrmSZnw== 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=xKw2/RAcdXZWQN02V1z9yzRy7CXyZCgrhub8YtJUy/o=; b=org9c99KH4OuPNz/QYzuwrnrHVWv62+veCeA12J+cOPoOTm8iQ+z6i84ekUjL2yclaYhaBT1Xv/1YFwE4vfayBuhbL6eYNl8t3XrOq6s3PuSaZTo6sBW38Btyd/F6Jw7zWnd0hBBFEGEFYIO5BLqbuG2B4xGl4eexm/54IR08jslhmBgtipl5Xs7aff6NkbziIawV38V17TAX1fJJn7hxvo0L3mK12WRLHa4hNwZDmFEWTdh3N9oWiUlx0naQpGeMESx/PivPt0X2Wb/c0hD2Rp7GvPIVK2PbeZO/m0FNnWeYsu7yS9pR0JeICwlByXyVfIEAcqze0lkL8oV+0gh4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from MW4PR11MB6739.namprd11.prod.outlook.com (2603:10b6:303:20b::19) by DM4PR11MB6042.namprd11.prod.outlook.com (2603:10b6:8:61::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Sun, 13 Apr 2025 22:51:47 +0000 Received: from MW4PR11MB6739.namprd11.prod.outlook.com ([fe80::a7ad:a6e8:fced:3f24]) by MW4PR11MB6739.namprd11.prod.outlook.com ([fe80::a7ad:a6e8:fced:3f24%4]) with mapi id 15.20.8606.033; Sun, 13 Apr 2025 22:51:47 +0000 From: Ira Weiny Date: Sun, 13 Apr 2025 17:52:11 -0500 Subject: [PATCH v9 03/19] cxl/cdat: Gather DSMAS data for DCD partitions Message-ID: <20250413-dcd-type2-upstream-v9-3-1d4911a0b365@intel.com> References: <20250413-dcd-type2-upstream-v9-0-1d4911a0b365@intel.com> In-Reply-To: <20250413-dcd-type2-upstream-v9-0-1d4911a0b365@intel.com> To: Dave Jiang , Fan Ni , "Jonathan Cameron" CC: Dan Williams , Davidlohr Bueso , Alison Schofield , "Vishal Verma" , Ira Weiny , , , X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744584735; l=4875; i=ira.weiny@intel.com; s=20221211; h=from:subject:message-id; bh=V3fWJr3Em3iZQf2yytjyz4d5nf/SXSyrd7uDfepAKP4=; b=AyU5Sbgydhbm2qFavE2D0NLOq67cFT0qHgTrjJZn5EyonDuA4LqaYh1vyvPtk899fCRRyPfSq VJ4h4uy1+yoCH/MA3Qz5CTwwJOlkY4s5S2wdbdVLxqhprOY0ofY97Z7 X-Developer-Key: i=ira.weiny@intel.com; a=ed25519; pk=noldbkG+Wp1qXRrrkfY1QJpDf7QsOEthbOT7vm0PqsE= X-ClientProxiedBy: MW4PR03CA0227.namprd03.prod.outlook.com (2603:10b6:303:b9::22) To MW4PR11MB6739.namprd11.prod.outlook.com (2603:10b6:303:20b::19) Precedence: bulk X-Mailing-List: nvdimm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR11MB6739:EE_|DM4PR11MB6042:EE_ X-MS-Office365-Filtering-Correlation-Id: 2b275f08-8b81-4bd9-6ea2-08dd7addc517 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?q?fi9fdLw+omWWJTRZP+G7CP9YoJ7DX8m?= =?utf-8?q?YKbnhGtQCNhHG1x+hKStCCOgSzS0Set0e5MZ8UUI3moFbo0W53HMjLU+9wMpsIeBU?= =?utf-8?q?kg0w/jV5GI1622pp1rD1nTix19xWptKZoTos0K29w9hgikl1oshcbRtWov2zDaVtG?= =?utf-8?q?2Pnel5GPTvBxAv6HIWxXPZREdUhzI0VktbYtO2UfvhKkp+ArDpbel4w+YSU06O2Rx?= =?utf-8?q?aPNMqYcPvn4yesBhZMAMwmgWpLVuXQHK22mfrta4JO4F0aGMSGNCmeHlt12yMPELi?= =?utf-8?q?M2V/F3IR8mvH/kteWpUQuR5l+UsITX6MxrmVP+oWcqeJq7LNxByU7G0MxMJYOMr/B?= =?utf-8?q?avq8CEKf3Sl+zJ0KSAZChUcFVh6qSelu6sFi4dhMl4Y5xh9zCV2wdAxv65ImD7580?= =?utf-8?q?IFWJwpPIlN73tKsQHgOoSJhTKj7yD9XRUdDvblL7pXxz+zNafU0008sIvtR16cIFG?= =?utf-8?q?rWTRzzGwakjyVgt0y11i6XbOQykHQrZ6Go/C2xhCYlq0XajNhpxLwEJ6oOxCFlKA6?= =?utf-8?q?+2yCE5z6+vKzGBayp3xAKuj2vOswqkZHwREck362cFlLgTDNYLu3Gm2nLCuIwZriT?= =?utf-8?q?Zb01w3nr/W6x7IIoQzwUvtHiCM5i8u01hI+f9gnidOUuYf3JFyW3+QcHgK5XcZXWy?= =?utf-8?q?Eh1CDB4FB/AOunGyhWaEttcnizHGfZVRjS8hIzt0FHsZqa+UnPfZV6jIATV2iZ9T7?= =?utf-8?q?C83T+OPM7Y0CgQyuqU5glDDyf2Vdm+bIH5mg3F/kHqwxdrqa5E3twDXR6MbX548We?= =?utf-8?q?egblbkKCOq9sI4/PeRHitsGUBE4m//ggzh/kb0PJNGXA3Kw7qR6lHLlbuqD1ESpul?= =?utf-8?q?hLMLHNw89LJQiCkW/QJ94BYwgrAWnJ2YF8bIKwmZfUlhlbrLlsAiLIlIKtaLWd0Gb?= =?utf-8?q?ZapuKxekJHy1HyvirkA/MpXO8YoTArBWl8HKwIdL0vUZSJIxoMLAK/OwnZ3qIj9GP?= =?utf-8?q?fBZnC7w6QDiQvLIkrtYw0nVAZJghjD5A3qDg28GQa9WHKg5gbmjDPP5m4aPCdX70Z?= =?utf-8?q?EEwayOGyYIjsFehRLYItv94hrBON6TlG30sVupwp8n8H+YVbXd1K49PHBDTgB79pH?= =?utf-8?q?1e48mdzRj2cfm/qkRR9iHNwocjaDW4GmPpk3YYGiPtzo0r9eaeAdXzvsXgvA57LhX?= =?utf-8?q?Qtj5xNZNHs6K+y5ivq8XHah9NiLoiplT/AnurKqHc+3jxKad/25/FhQl3qSFPDjRN?= =?utf-8?q?wHxq4UaGilf7jmKtImg3aC8TGw1Az7UN5q/AUkpBy84JAKGG77iBLQWp2pAPLbwSK?= =?utf-8?q?+xR99rfDstV/IR6hsPY/JxMYOxGJq6FS0qI1wdRCLwUxjFPpyL+3TwKhQhYyg1oeU?= =?utf-8?q?DvR/H028/QCCmGBrSh+PuY/8hiYciTr9Ug=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB6739.namprd11.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?q?6XKmOqi5DEBwRDmZoqRZjgkRbCDn?= =?utf-8?q?VFYKD86oXBdV+/qZ8ci5YNgYtyNPtwmZ3YhMNQ1Fh545SBA4KfGGLBVb7MRi8Gs84?= =?utf-8?q?Jr8lPb0UVvUzeepyCtUcy1YrjjBaOZCUAEQ+gPsH9KcZQ+3paZRR2sIF1Iy+vy937?= =?utf-8?q?Xx2DRvBskZikMszkwr2CduqxZMb66yc3BCVWz/HagCI7DGknqHDxZU7NpKBFbPnMS?= =?utf-8?q?xArl6Ix5DhU4XBom/10sf7E3CGbeLwlsEmdjausdTP44mQgIpsbtj032h5TADPI0X?= =?utf-8?q?Lv/v9yezhxc2otIma5x85qFF+scauu0OPRR9/RsALlP0FVNJSlY039D9htQPA3Szr?= =?utf-8?q?kieBuB/CrzCx45Gl7LC4G6/K/6yO6GbwMVvSC43kbgEgkPcv2+FDxcJxhesiCUpqH?= =?utf-8?q?kQx3XgF+RiLJA+d94iY5J7W01l7uMZ/CMeTfFtU9HLqqrxQDHrKLIrhVUEguYhAWo?= =?utf-8?q?YQY1sSGchmj1zV+lPDX1NuVT34d3hf79d+k1MlPWD/voerwgqdp8VN+jzNcTmat/u?= =?utf-8?q?pgpJu7nW154JEHYsaXxJjkTVCb5BJAFq4T+trFjOrVe3zwClN4O6Vkit8wWpJbn4X?= =?utf-8?q?dDmS28ZoOJ/59pBvgMw59GRlMKP8wi4+PMp1UnFTmO+QWKrwQtkAgBtcrhQDe9cmn?= =?utf-8?q?vtR2j+jSWjWHXi5yDAU5D5oL5MGKP6DEicmdFWixKbzCrNjyjwoKA+/6QlUeqIL0A?= =?utf-8?q?ElvOMqcf9BO2uactgC/srXr3utsorUgH+FXtFBwvxs1VLa6CJOxXgFOYcsmWct9F+?= =?utf-8?q?fddFls9v2yfG46jwFS+uJYI+kuXtv902OL2WYtCSFWcpZ700g4NtZYBCie/ylskHy?= =?utf-8?q?rgmw9jnXoAL97xFg2gta9Y7GxHpRGIqX4cK3k7gUcOMe3hTmir2l9002kWvPU+2UZ?= =?utf-8?q?WUcRUVLUJCVALoRlblRifiz4xN2o6GhYBQ/UhPaDoeWOn5EUl3Wr0NZukoB/jNWAp?= =?utf-8?q?vzibIsyRAMd9t2gtVSdqW4WEGP4n9vpmUpyvxvg86iAKwbv56BOZTGtySRK3NDWhT?= =?utf-8?q?6+X+HmTdzvZBp3aU13vItzg/3Qpz9acKUCWXS/sJXI88bc6B6di2xeO/uHCchHJMD?= =?utf-8?q?HZ60GivhFtA/JM6HLDhycUicEw+CJRm3w/xDREIY9lua3r3gsJsqbGaN7VlGCWxFg?= =?utf-8?q?BFeuefxwsDRjlQMSHrwjuE+sQlsulnv/MHHUHkhEJD4dPZRsk1QJYxbCaRZTPtQcp?= =?utf-8?q?V2pFbEwBHFs78gvoI4VuagHzAjB5s30HRyJAi6d5331ThsdnDyl8sW/pVyuGQRc+K?= =?utf-8?q?FSLWW4oA4issgOsJFF/66RiGojcohgG0xf8xGBtHoNGY9swciJjwOMLEv7SJ8MpwQ?= =?utf-8?q?a5ZOasGYyI0jXtcgVT46Lrul+2CQtGk8uM/tY9XW0CGRFXp/C4fM5BykSH+gOOKjG?= =?utf-8?q?XViDSsmzj5W9hRg5PWXJcRGEgv6y3adhSPuHczwNgSvwVjpj9LAo1A0WSVFFOMWMG?= =?utf-8?q?FRjR7bXREO+QPH+ONfctxdkBuG3oO7JY6T3PP+YEjaf4srb3pvXQRqOwwchRp5k3l?= =?utf-8?q?OjszT1xEH0nQ?= X-MS-Exchange-CrossTenant-Network-Message-Id: 2b275f08-8b81-4bd9-6ea2-08dd7addc517 X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB6739.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2025 22:51:47.2554 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tnWNTg5dVhoU2PWzio5UvYtxgSzapntFAx2J5o3z5HYKkRnwpr3+CDCpwZnHdb9ImOxNrU1PW/04+wjrCKejaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6042 X-OriginatorOrg: intel.com Additional DCD partition (AKA region) information is contained in the DSMAS CDAT tables, including performance, read only, and shareable attributes. Match DCD partitions with DSMAS tables and store the meta data. Signed-off-by: Ira Weiny --- Changes: [iweiny: Adjust for new perf/partition infrastructure] --- drivers/cxl/core/cdat.c | 11 +++++++++++ drivers/cxl/core/mbox.c | 2 ++ drivers/cxl/cxlmem.h | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/drivers/cxl/core/cdat.c b/drivers/cxl/core/cdat.c index edb4f41eeacc..ad93713f4364 100644 --- a/drivers/cxl/core/cdat.c +++ b/drivers/cxl/core/cdat.c @@ -17,6 +17,7 @@ struct dsmas_entry { struct access_coordinate cdat_coord[ACCESS_COORDINATE_MAX]; int entries; int qos_class; + bool shareable; }; static u32 cdat_normalize(u16 entry, u64 base, u8 type) @@ -74,6 +75,7 @@ static int cdat_dsmas_handler(union acpi_subtable_headers *header, void *arg, return -ENOMEM; dent->handle = dsmas->dsmad_handle; + dent->shareable = dsmas->flags & ACPI_CDAT_DSMAS_SHAREABLE; dent->dpa_range.start = le64_to_cpu((__force __le64)dsmas->dpa_base_address); dent->dpa_range.end = le64_to_cpu((__force __le64)dsmas->dpa_base_address) + le64_to_cpu((__force __le64)dsmas->dpa_length) - 1; @@ -244,6 +246,7 @@ static void update_perf_entry(struct device *dev, struct dsmas_entry *dent, dpa_perf->coord[i] = dent->coord[i]; dpa_perf->cdat_coord[i] = dent->cdat_coord[i]; } + dpa_perf->shareable = dent->shareable; dpa_perf->dpa_range = dent->dpa_range; dpa_perf->qos_class = dent->qos_class; dev_dbg(dev, @@ -266,13 +269,21 @@ static void cxl_memdev_set_qos_class(struct cxl_dev_state *cxlds, bool found = false; for (int i = 0; i < cxlds->nr_partitions; i++) { + enum cxl_partition_mode mode = cxlds->part[i].mode; struct resource *res = &cxlds->part[i].res; + u8 handle = cxlds->part[i].handle; struct range range = { .start = res->start, .end = res->end, }; if (range_contains(&range, &dent->dpa_range)) { + if (mode == CXL_PARTMODE_DYNAMIC_RAM_A && + dent->handle != handle) + dev_warn(dev, + "Dynamic RAM perf mismatch; %pra (%u) vs %pra (%u)\n", + &range, handle, &dent->dpa_range, dent->handle); + update_perf_entry(dev, dent, &cxlds->part[i].perf); found = true; diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c index 866a423d6125..c589d8a330bb 100644 --- a/drivers/cxl/core/mbox.c +++ b/drivers/cxl/core/mbox.c @@ -1321,6 +1321,7 @@ static int cxl_dc_check(struct device *dev, struct cxl_dc_partition_info *part_a part_array[index].start = le64_to_cpu(dev_part->base); part_array[index].size = le64_to_cpu(dev_part->decode_length); part_array[index].size *= CXL_CAPACITY_MULTIPLIER; + part_array[index].handle = le32_to_cpu(dev_part->dsmad_handle) & 0xFF; len = le64_to_cpu(dev_part->length); blk_size = le64_to_cpu(dev_part->block_size); @@ -1453,6 +1454,7 @@ int cxl_dev_dc_identify(struct cxl_mailbox *mbox, /* Return 1st partition */ dc_info->start = partitions[0].start; dc_info->size = partitions[0].size; + dc_info->handle = partitions[0].handle; dev_dbg(dev, "Returning partition 0 %zu size %zu\n", dc_info->start, dc_info->size); diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h index 057933128d2c..96d8edaa5003 100644 --- a/drivers/cxl/cxlmem.h +++ b/drivers/cxl/cxlmem.h @@ -104,6 +104,7 @@ struct cxl_dpa_info { struct cxl_dpa_part_info { struct range range; enum cxl_partition_mode mode; + u8 handle; } part[CXL_NR_PARTITIONS_MAX]; int nr_partitions; }; @@ -387,12 +388,14 @@ enum cxl_devtype { * @coord: QoS performance data (i.e. latency, bandwidth) * @cdat_coord: raw QoS performance data from CDAT * @qos_class: QoS Class cookies + * @shareable: Is the range sharable */ struct cxl_dpa_perf { struct range dpa_range; struct access_coordinate coord[ACCESS_COORDINATE_MAX]; struct access_coordinate cdat_coord[ACCESS_COORDINATE_MAX]; int qos_class; + bool shareable; }; /** @@ -400,11 +403,13 @@ struct cxl_dpa_perf { * @res: shortcut to the partition in the DPA resource tree (cxlds->dpa_res) * @perf: performance attributes of the partition from CDAT * @mode: operation mode for the DPA capacity, e.g. ram, pmem, dynamic... + * @handle: DMASS handle intended to represent this partition */ struct cxl_dpa_partition { struct resource res; struct cxl_dpa_perf perf; enum cxl_partition_mode mode; + u8 handle; }; /** @@ -881,6 +886,7 @@ struct cxl_mem_dev_info { struct cxl_dc_partition_info { size_t start; size_t size; + u8 handle; }; int cxl_dev_dc_identify(struct cxl_mailbox *mbox,