From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 E70D53D16F0 for ; Tue, 25 Aug 2026 09:19:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787649594; cv=fail; b=UdPkFR9DuYOK4Ryl/5miYIY7jCYq3C0AinpZq8mDA3rPZ5zeRRIMcts8Wu/NvtlHV37IkM5p9LsJ+lvCVqe2G8vBIRFAKlerh7SYXgy4jzXCzDVaHfqnVq5joVymPFQeNgeGqQOCE8omQ8IZCOgXPA8m3tW1QNelbRo3WiKo8jQ= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787649594; c=relaxed/simple; bh=zXUcOZmdsIq+9hDTyi2GSmTKvd5r5JoAHKV9qNV+iLA=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=XUtZxpvUTUE0dBQK4dYZhWKeg5DXgrEUrCZwB3DQqIpXootC3omE7c/lLUnSaAJ9j3sOuiP6I884HWnI7zdVLt0qBwHzwNc2HBIUFHykP6dS06Oa2wcSHPNtczpiy80I4f/kmIBNuApbzraKNzXkckQb97Ot8k5z9fmCs7O4KLY= 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=N6risWJq; arc=fail smtp.client-ip=192.198.163.10 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="N6risWJq" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1787649593; x=1819185593; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=zXUcOZmdsIq+9hDTyi2GSmTKvd5r5JoAHKV9qNV+iLA=; b=N6risWJqKZgEvVtX9fAW8r02Y2jJs0z09/F3k/Qud6ZbjEtnktp6/N91 CG+iA+FC/R5WS8Es1wrBVh3stIHd0wSdH7sOMq8K82G0jeTS2PyyFXEMW CK47tcnFfwksBxMhl0vdcXiAZ9W7nwSTthYstH4U0sZ9oLuEK9I3b5eo5 k2+X0wktNQC6tAUCColUYQ7otDkFMYmJwqxu69MRLWUxt3/U6chMUX0gl fbcugFvxRbFwMoRys0x4YsBcClmViNe8lYkn+qV0lVJIuid0jzH4C36W8 yRGgc+tskRuHZUOfSru/NPmKFe18tpqdruAWWN9ivG1wla2Q1Xn7dakkM A==; X-CSE-ConnectionGUID: 0dxr0lVAREmOUuoJFnY0YA== X-CSE-MsgGUID: ktKeMLZOR2e7Rma00ZIOBQ== X-IronPort-AV: E=McAfee;i="6800,10657,11885"; a="99459102" X-IronPort-AV: E=Sophos;i="6.25,242,1779174000"; d="scan'208";a="99459102" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2026 02:19:52 -0700 X-CSE-ConnectionGUID: 2kAbXS2hRSK0rQRAQV+FVA== X-CSE-MsgGUID: u0tz3kPlSsa+Kd4Yl0ma1Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,242,1779174000"; d="scan'208";a="265462995" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa006.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2026 02:19:52 -0700 Received: from FMSMSX902.amr.corp.intel.com (10.18.126.91) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Tue, 25 Aug 2026 02:19:51 -0700 Received: from fmsedg903.ED.cps.intel.com (10.1.192.145) by FMSMSX902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45 via Frontend Transport; Tue, 25 Aug 2026 02:19:51 -0700 Received: from DM5PR21CU001.outbound.protection.outlook.com (52.101.62.30) by edgegateway.intel.com (192.55.55.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Tue, 25 Aug 2026 02:19:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uWr1TQqa9x4Bu0MLWkkcjgscBaSEk59YUwy2AZdIYv0g7FmxHD2rxvJxxchD8N2WatiifutSSrH/Kc0iJxUchWZkX9/bJhRbqOkqt99iTiA/igUI/MdMAbyaJ+/4aSaaIwgwIuy7pqrPgw7TbdfPeCMcQYcycPQHK6x4RN+9ayma9aMaAZyazDRDp0v2jfbuYBp1w2ZcOzcfeKqA4ETGel9YHZ67KGYxWcHH6QKgHah4uCDE3HofKaBERPT+Gc0DHT8uMpyzaex6ndWoKfxbzHMNlB+p57V1vRJrxHSjuudNLLBq2pYMjayObg01YYq6MNZUwWGVsfsIz/gqC4sSug== 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=RZfcjklYLILmr+XlL0sGCBq5hjcxcXPmzcgYVE7dAvg=; b=X09T+ByScAWsoRUlsBsuu86UyufNAoahTRTsxupujbyWmXEATgIakYvEASH3YTunB717VLWD8gtPDZMF3Sm4JymDlKIYzOI+h+nJA9EQ1fm7FsRNSBvrKsefFC6Xfx6+yYh7svo6jzppJreHtHSLHvBQ0D4rSeglrVBMXlDzDilop97nkJGxY9LcAV9Kjay2YyKhtVOF6H/BnjTlXhxWKIh5jv6jr2aoi7wSRfjVqH91AQIrBiykHXeexydodDqNkvgYlBsw2MyZjfuErLYp5dd97GyA6jmmpZ1zwIT6rARHz+SxzkIJkAIppRfM3SQwNWvUVYojgkAs+7RWFyVCIw== 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 DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) by IA0PR11MB8417.namprd11.prod.outlook.com (2603:10b6:208:48d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.12; Tue, 25 Aug 2026 09:19:46 +0000 Received: from DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765]) by DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765%4]) with mapi id 15.21.0360.005; Tue, 25 Aug 2026 09:19:46 +0000 Message-ID: Date: Tue, 25 Aug 2026 17:19:36 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 5/9] x86/resctrl: Parse ACPI CMRC table To: Reinette Chatre CC: , , , , , , , , , , References: <01d48e87-eade-438d-9d33-b1110b6bbfcd@intel.com> Content-Language: en-US From: "Chen, Yu C" In-Reply-To: <01d48e87-eade-438d-9d33-b1110b6bbfcd@intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: KUZPR04CA0027.apcprd04.prod.outlook.com (2603:1096:d10:25::19) To DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) 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: DM4PR11MB6020:EE_|IA0PR11MB8417:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c3d95cb-6183-4a97-c68e-08df028a012e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|7416014|1800799024|366016|10067099003|56012099006|11063799006|4143699003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 7xOt1v2POFXaHi5pQnPYE/azkV2bAVVCvtEJpL/ZQA5poWKZHiyeutJF+JHKYh2+PKXy6De0N4SaZ99n+a9YquPrQYZqICxNMzqsAo4sNTJeEiME7ErF0QEeRmo1AAuMNvys8TDY5NNhuticK99J+e0G5gZsUxGAjWa61CKONgMYGefq/72KJkEmtK1otAE4TRi4Cufghfb9CwXaIygm+T+5H2wZQLU9uJpwQB/5NmAdNlqlq9OT8aARkbh6sX7XpukMOmsDkF2eiF0VJbz5s40QyxRaGAYE5IGZCCA083ZBYK3m/K9kLX7YWzeW5qSdUqcr6f80qVAUAAiNmOdWFc39A8IRApSAfYp4leV3lX4ngbPMqm5RIheI9phmFIQn9afpDZYl41dJxyuWonGequCxGaazCDtskc6QzjAQrM/vXpXA0YaSOzWPZ9Ua0igNMFM7MM2jJ0ngtH3BfPwVeMIjpMZH5/+Z8YC/WSZForjxrcXYIIfYo1l8SztfJtAjaM02yZTuYY9qAGU4y7g/sJsta7PsBElIVMs4rCQ7rFv46Xz/b5NBU7xFta8PvmknGj7TmrX7bPJjl0UyxiToGesCYu+eHLpjzym7l/IZs2M46WFmhHI4oQcC6E+AUy/m+srpuU1P650zkX6h9V6iVjHtxohan9zZMB6qFp0Pq8c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB6020.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(7416014)(1800799024)(366016)(10067099003)(56012099006)(11063799006)(4143699003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y2QrUTF1UzZLRjhpMEcySk1Bb0lRUlZDN2RQSUlaeUM5ZHZWTHNxY2J1anB5?= =?utf-8?B?V2l0MnNKV0o1WGR4VytDU3ZkQklsMVRHTTdTNFV1YXVDeTZxMUZqRXo5cFlY?= =?utf-8?B?NDRIcDNQQkF0ZmExUDZ1V0NUOVhFbkVIVTFoREdHNkFrTnpWZmRIWDhvOXdS?= =?utf-8?B?NXJkQUxrWUdaZlAxazBMY1VYOG5GVUJGbmpDWWl2dllVb1FvcFlmY200WVhL?= =?utf-8?B?V1ZqWXcrb3YxSTdUSzBzODBJdXVQQmF2OUdQeitwNmtmeUtveVRmelk2b2d0?= =?utf-8?B?bkI4UVQ5QW0raHczSkJtcEJMYk9vVHpQSWM1aHhqWk44UnRyNDcyeXpsVHpZ?= =?utf-8?B?TEk1L1lTcGVtNUxKNzlvSUdzYU1XR29yT2Y1bUJ5Ri9WVUt0YmpJTWJoclZL?= =?utf-8?B?MEk5OTZKZlRockpvUXZoQms3aHozeG1qUkZUcWtEc2cwR0drQzBpK0xaSU9Y?= =?utf-8?B?MjZVK0cvNFFac1FKMEVrRXpwc1JCMGRHSlJudXhQckl3QUJlZlUvOWdyVXp1?= =?utf-8?B?MDVtdDBxQVF2eVZiVWVIS3dYV3lWd29TNmt5V0hGeWZTSDd1SGJjejBaNDIy?= =?utf-8?B?MTJTTStrbkZ6Q0Fnd05xb2t2Nm1zblpDOXZZVE95WGUyQkFlOTFIaUpub2hO?= =?utf-8?B?cmdoTkJZTzlJaHkyb0NZMCtlWG9BWGN6eWZ3OGh6M0MxMENIWG5qRHZsbUdB?= =?utf-8?B?UW9razlDTE13YnhQVmgwYkJOK28zajdKQXVtVnFmOUE0Q1ByTGVrQ2Z5T090?= =?utf-8?B?c29zRGFYUGJsRzhKcHI0SDFFTm1GV3paaE1XWUxxYUs4ZExCSWRyMjBDZjdv?= =?utf-8?B?ZGowQXIxS1hZMEJiaVNSRmo1OVU5alJiNTVtTFFTakJxQ2lsaFhOaE9ic0NP?= =?utf-8?B?aXpUbytJQmJmcWJjUlBoZnZpY1czSUtsZ0xRalg1eXVrVWFrWktZTis4NVo5?= =?utf-8?B?YzNaMlNzUnppWVFSWHo3d3Rma2NOZW1tamdMUW1sSExIdldTZEhyRG1wR1VZ?= =?utf-8?B?WkFMWlQ5ODR2N1Rlc3FxMzZUdnRUY2FRY2ZIbXhLMytBQlIwV01oM3ViN3Nk?= =?utf-8?B?ZVVFWmpuWFBDZVBOYWR6eVBDM0RybHc0eFYrNWZUZ1o5bHVCSDQvVzlkM0tn?= =?utf-8?B?RzB3YWx2NWQ1Y3dnd1JDNDZRSWU3MlhqUVFJeUNwWUFxcy83QXhrTzYzdnRM?= =?utf-8?B?UCtJdFBESTJ4dGFPbU9ubGkzdWUySkFVK0xwVkgvVHRsYllXRlVoSjFkdTlh?= =?utf-8?B?VTlQUnNhMzFIZVNGNzMvTGRCTDJYV2h2b2UvdUR1c3BTZnhkc1lEQmxQK2NI?= =?utf-8?B?QjhiUHB3L3RoYXltSVhKMStZK2MyRlFkczhyQm5WdUdkejNxTkozUUVrcTh5?= =?utf-8?B?YXBSM1NRZHphdTg5Q05IcENTdEFsZ3hKZjB1QUd1TnliMStsUE9ScEU3Zmly?= =?utf-8?B?clJHL3NqSXZlejUvVkNsM3pxVDIvVzRvYi9Tazh2c21NU2JXMTgxY2p1WUhn?= =?utf-8?B?dGJjZUk3S21YSlRUT2pLamtGZnJqbUFZeGlRUFhFWHY1dkZBWFB2bVVNSEND?= =?utf-8?B?SklidmU0dExyZ1VWaXU2M042a1hTQkRwMnEvUlRvVHg4c1UyaU9ZMGdhMnBK?= =?utf-8?B?d0pyYmh4WjlDL1JzNWp6djNMbXpRd2IyNUREM2Y2SDR5ZGg5Zmpxemg0N01a?= =?utf-8?B?S3daUElra2lJU1V5UytyT294UjVVejF2UFdDUjJnNmxCVHFnTlEweWdsYng3?= =?utf-8?B?NjhDN0grUGdERGJKcVEweHlUTGpJWVd1NElTQXhsakhIcEs0UXlDVSsyMzZw?= =?utf-8?B?N2VjMXhFZG1DczJyRzk3aGlzK3YvSjZLaGhORmpsUjRGMVN4V2NNVHo4VThX?= =?utf-8?B?ZU4vSDNjYjhJTysrbWxhVFhQMU56aThpWlJHcU5GSFdBU01YUGpuRXppcWR5?= =?utf-8?B?Rm85UFZtRnljekM0amJxaG9kc0pVNWNJanZHLzBLRFNTT0RETGUzcmRZVlQw?= =?utf-8?B?Tm9Lb1NNVlhET0N5RmRvS1NaMmx4a1FWOFdJSnpnYWp5c0NWc3dNR1RCQ2RJ?= =?utf-8?B?QXc4cFZEVk8xRjRBbkUzcVQraVZZVmpKcE9HOHk3NXRheDYrZWJ6YTZIdFZn?= =?utf-8?B?cnVCTnFIV0N2Z2Y0VUx5TEtoN0RPWWsyYkd1djk0aWV3YWUxckRuaHlmSlBh?= =?utf-8?B?VXZsdDRqUkZWdzBYZ3hJSFd4ei94TUpxcHYxa09CMnp1R0plMVZBQ0hRMnY2?= =?utf-8?B?K2F4bFNhZE5vWkYvbG5Nc0JHSjVMV3dNYnlXNzNQVHRpUVpXUS9KaC9zWW9m?= =?utf-8?B?UVhtczY2bCs1aVFRTXk4Z2pQQ25BTnB5aGpUaTNvcksvaVVlUEMzUT09?= X-Exchange-RoutingPolicyChecked: X+ECUaEF64HbmBaXeg7M4UZ+qXHbCwd799Wb37mqfyBrutRxBDeZXT1llJsxWilLkanx9qJO9H7PbRX+3jrGJqbXN7Lpd9c/9IUglBwgl98iCpgQRThTD0f66LRQIEepDxFEgRCHM9pSsVIJSOhsThxweUzNr9llsNZbCvwnRRAgMuwX5prKItor0HWiW+MgDy5MEmMJE5T8ycmzu68QoKk5UnjveVKZKvWFtRdD7rArWq5ixbvh0NEvzoNXSCd91X1vUqaOEYGuxc5X7driWx//d5e7NAabVphPOUD8jhNhrTuz4ik7JWMPwRNhrrUSr/H0HWa9a5LAjuMagK6Mqw== X-MS-Exchange-CrossTenant-Network-Message-Id: 8c3d95cb-6183-4a97-c68e-08df028a012e X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6020.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2026 09:19:46.2304 (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: NWmw6hEdZB/AhbAuAdMhQBdjNXgdFq22NM19DGbStZHtveolTsi1Q2wskBUuNj0Qm117MYtps0fU0Fqy7zmkag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB8417 X-OriginatorOrg: intel.com Hi Reinette, On 8/20/2026 7:06 AM, Reinette Chatre wrote: > Hi Chenyu, > > On 7/25/26 2:23 AM, Chen Yu wrote: >> The CMRC (Cache Monitoring Registers for CPU Agents Description) sub-table of >> ERDT describes the MMIO registers used to read cache monitoring counters (e.g. >> LLC occupancy) for an RMD. > > nit: "an RMD" -> "a monitoring domain" > OK, will change it. >> >> Parse each CMRC sub-table, ioremap its register window, and save a copy of the >> CMRC table in the corresponding ERDT domain entry so that later monitoring code > > nit: drop "later" > OK. >> static int erdt_max_rmid; >> >> +/* Scale to bytes for the monitoring counters when ERDT is enabled. */ > > hmmm ... when looking ahead at patch #9 this does not seem to be how this value is used? > Instead, when a monitoring counter is read it is scaled using the per-domain > acpi_erdt_cmrc::up_scale? > > Instead this seems to be the scale used to set/initialize resctrl_rmid_realloc_threshold > that is used by the limbo handler? > Yes, erdt_scale is used only for limbo handler, and the cmrc::up_scale is actually used by monitor count. Let me change the comment above. >> +static int erdt_scale; > > Can the scale ever be negative? Could it be unsigned int? It would not be negative, let me switch it to unsigned int, but.. > Actually, looks like the original > MSR based scale obtained via CPUID.(EAX=0FH,ECX=1H) is 32 bits while this new scale value > from CMRC is 64 bits. The existing code can thus not accommodate the new values and need to > be updated? > Yes, the legacy CPUID reports it as 32 bits, while CMRC is declared as 64 bits. In theory, we should change the scale type from unsigned int to u64 to accommodate both the legacy CPUID and CMRC. However, it seems unlikely that the scale would exceed 32 bits. If the scale were 32 bits, the L3 occupancy would be at least 2^32 − 1, which is about 4 GB. We have not yet seen platform with 4 GB of L3 cache. So perhaps we can keep erdt_scale as unsigned int for now IMO. >> + >> int erdt_get_max_rmid(void) > > Can this be negative? > It would not be negative, let me convert it into unsigned int. >> >> +static __init int cmrc_init(struct acpi_subtbl_hdr_16 *subtbl, >> + struct erdt_domain_info *domain_info) >> +{ >> + struct acpi_erdt_cmrc *cmrc = (struct acpi_erdt_cmrc *)subtbl; >> + >> + if (cmrc->header.length < sizeof(*cmrc)) { >> + pr_warn(FW_BUG "Truncated CMRC subtable\n"); > > Please note there is inconsistency wrt "subtable" vs "sub-table" in error messages. > OK, will check the code to fix them. >> + domain_info->cmrc = kmemdup(cmrc, cmrc->header.length, GFP_KERNEL); >> + if (!domain_info->cmrc) { >> + iounmap(domain_info->base[ERDT_MMIO_CMRC_BASE]); >> + domain_info->base[ERDT_MMIO_CMRC_BASE] = NULL; >> + return -ENOMEM; >> + } >> + >> + erdt_scale = max_t(int, erdt_scale, cmrc->up_scale); > > Please add a comment to describe why maximum of all domains' scale value is used. This comment > may be best placed at global definition of erdt_scale. > OK, let add the explanation around erdt_scale. >> + >> + return 0; >> +} >> + >> static inline struct acpi_subtbl_hdr_16 *rmdd_subtbl(struct acpi_erdt_rmdd *rmdd) >> { >> return (void *)rmdd + sizeof(*rmdd); >> @@ -166,6 +213,16 @@ static __init bool parse_rmdd_table(struct acpi_subtbl_hdr_16 *rmdd_hdr) >> goto cleanup; >> >> subtbl_mask |= BIT(ACPI_ERDT_TYPE_CACD); >> + break; >> + case ACPI_ERDT_TYPE_CMRC: >> + /* >> + * Only one CMRC is supported per domain as there is no >> + * method to distinguish different CMRCs within a domain. >> + */ >> + if (!(subtbl_mask & BIT(ACPI_ERDT_TYPE_CMRC)) && >> + !cmrc_init(subtbl, domain_info)) >> + subtbl_mask |= BIT(ACPI_ERDT_TYPE_CMRC); > > How is cmrc_init() failure handled? > On second thought, the cleanup needs to be performed. That is, the region-aware RDT should enable CMT, MBA, and MBM collectively; otherwise, the system falls back to the legacy interface. This could keep the code easier to maintain. I will address this in the next version. thanks, Chenyu