From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.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 9F679393DC3 for ; Thu, 26 Feb 2026 20:47:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772138868; cv=fail; b=pQeSKz/aUCscnRe7R5T9T6afmZV2S1Tyh3ryDths2mfhkj4007UQwcrwyFtj6xAA5ysU35dBAlcdgGdIB6VVFOQMZc2wGCPHxhrxV2Vu6BWr6f9P608s+2rzBe1SFFlFaTrjluEZMqzNPCION6Uwkj8p/tIMrVWnuX7kce+Yxj4= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772138868; c=relaxed/simple; bh=p2aw+EruIgPNj4bagcGlhjaOOAWl3bPHChAQhhEx/tk=; h=Date:From:To:CC:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=Vim9UjKuze5ZO5Ke54n7K8lADegrNN2rPKSXxgVfHUMnbZ/IHPrwUbp6K91gu3VKfhLLPkYOOuBRFQaDKmtq/pKJDgaq633tgzoMNQykBA/Odz/KPybVOc5xJLtMHvP99EStinREjCLcQ+9MifHoiSZ0X0oF3PvJtvUvIF1uOlM= 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=YnGmO7oR; arc=fail smtp.client-ip=198.175.65.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="YnGmO7oR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772138867; x=1803674867; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=p2aw+EruIgPNj4bagcGlhjaOOAWl3bPHChAQhhEx/tk=; b=YnGmO7oRoOSy9YsyG4qx3UAFVKDUXganxaW1PrisznsbTEDDQ6Oe/S3N 9v9tOHIoMOAO2yjw62ylAs2MS4PaLWZKn58zpgtlBqFeGkcPXgm6KBAQU TXW71Hn5OkKAQ4TTZKGFCqSDxF/VJKBm0VaMKhmuuqKHhXTv15c/NE3gw Lgh19xEnfv7gRCpmrvpISiVIGHixOYpxD87xS5w4wZSBsCLJyWfE3Ho1Z 7m7OakxofvUosdnuYAEf22SCoQBEC9dJD2ccYwzC97QnPDqMRgXROBziQ 1tzMVmEoIV4WCHeAWIf9HHEReHt8TZs3KgOjM5oRQA5vFkJ8JLxGf/riS A==; X-CSE-ConnectionGUID: f2AlR+C9RpqAjqZzppoWGQ== X-CSE-MsgGUID: fsP1HlB0TiqchCZFhJhaUw== X-IronPort-AV: E=McAfee;i="6800,10657,11713"; a="90622493" X-IronPort-AV: E=Sophos;i="6.21,312,1763452800"; d="scan'208";a="90622493" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2026 12:47:47 -0800 X-CSE-ConnectionGUID: 5vYM58VUQaq/u3hrWY+fgA== X-CSE-MsgGUID: 4jvklrikQ8q0DKx1NPonBA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,312,1763452800"; d="scan'208";a="220814778" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by orviesa003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2026 12:47:46 -0800 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 26 Feb 2026 12:47:46 -0800 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Thu, 26 Feb 2026 12:47:46 -0800 Received: from PH0PR06CU001.outbound.protection.outlook.com (40.107.208.6) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 26 Feb 2026 12:47:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h/MoWK1ucxklPOTG1dqdeyCFG0L2iyKSvjoraWhTuK1k6CNVRNGoMT3QrHesMbi7T3K7CJw5BKTwSmdfO2o/yvapXnJrD2P44F0k5SxeCRZKDN+jHkMNHtt3DzVmHgMgLsvQTSvAB2N5kK5OL3lEZ9LwdlOHh+vPQWLSy/SSjo2vdryHUzl1AZhIzxo57iCAH0IEfgJgM9MgU8BbSFQepq+wpKGUAZhxB3A44SrtkeEOaivj426tQi7zzuMZqmfFhkGhWbT3ty3ARYc1iZp7exaOTirmlfGiK+oGJ+iujAWVDmFgFAnm8hjWgCsQEZCu4KT1odC/t/RUjbNDu0Mq1g== 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=lc1YpzIQFlq0hN2a5VAiJxl0+E44NcRvWIaSz8k77EY=; b=prOuhUd6nSvV+4NFZDAYyU1xWIo3mwsDYeVj2hIDnkO9M6RuQZB8GFCxYmEzno1FgR7zzGQpTLGcyAoEuMGJq9IQ/5sE9epuFA8IR8s3iY4hiYol+z2A7kQ71E9UZVndyCxXEiyxn33wz1qorC49nQOzWLzQtGE8tPKd2Cpom7lCuL4fNM85pLypcMh0ImOnrxT6DlSoqXb7J8xDsl47a7SVrct/FIIDKd6VuVCx/5LlG3v1bwUHvuwiQNkcFferD5fJ/64cHcxwvIArM7qzQRIF94TVxIXMl5/6le1VTxGOBhY//x+ylPd32fNtQgD2D7ZH+jnrQ3Os5ddPHNoCxA== 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 SJ1PR11MB6083.namprd11.prod.outlook.com (2603:10b6:a03:48a::9) by PH8PR11MB6927.namprd11.prod.outlook.com (2603:10b6:510:225::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Thu, 26 Feb 2026 20:47:43 +0000 Received: from SJ1PR11MB6083.namprd11.prod.outlook.com ([fe80::3454:2577:75f2:60a6]) by SJ1PR11MB6083.namprd11.prod.outlook.com ([fe80::3454:2577:75f2:60a6%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 20:47:43 +0000 Date: Thu, 26 Feb 2026 12:47:41 -0800 From: "Luck, Tony" To: Peter Zijlstra CC: , , , , , , , , , , , , , Subject: Re: [RFC][PATCH 6/6] x86/resctrl: Fix SNC detection Message-ID: References: <20260226104909.675623579@infradead.org> <20260226105052.852170114@infradead.org> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SJ0PR03CA0200.namprd03.prod.outlook.com (2603:10b6:a03:2ef::25) To SJ1PR11MB6083.namprd11.prod.outlook.com (2603:10b6:a03:48a::9) 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: SJ1PR11MB6083:EE_|PH8PR11MB6927:EE_ X-MS-Office365-Filtering-Correlation-Id: a199da6a-1fda-4e7d-b28f-08de75784a10 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: WXGhIrX/GWB8FAK8/oHhSWgrO6SVQHAT/dGbPA3qm8yMZIymdy0RMbBsdQXhwhdA+OtsZs06oiieo7P7eUja5Jbba5RxdnmiUXRJiNyl8kyjm7FVEamMd/1Sa47zn+DjRcgb3AIWx7hK3fNTU861wFyBC9dnqVGDkuswJxXZLRNBW2ejEc5ap9Gq9g3Uhh6glNA8TXHZIipA1cFqNgVkkG28io/iELxCH2APapCQq71JK7FKVFLd4sbU0SwqB0gCNEUFGR/A5PbrEs8VznquDS8bUXL5xENDhuOKqmX35AfjnmYLIsGWyog8rtgCta8CsbkC/pWnK6wQSbuSosZFK5kGtkxekFPXTk6e6ghFqBQZ/JiBEC8sRP1pTRYrldcKcR7+j2sbSzGc3NYGuVBrQenQAvNalUyRglNLmnp+PtY/itTWubzHSzmMPRETwwJnr5RDvB8Jl/Xg14Yy+8hZ2dIevvtJlgClzoEs78WAWIHC+Wylh3WSC8oyIpSYZkAMYw6t3lf+mYcxADY0rkgG3ns0CQc90+U/9aUL2dwlLTc67jqCEnkyS4DtegfapA+iC3sr5Bj1nbrdBUWCYkvPp3CA5hcL1U1rzZQBZ5eJXBMA4vmJ2svW0mkz2637STqQ7wlYCWI/yGMj/eb5BJd6X0c78n8ATF5uWgBYjR3ysn4CrREnkd5iQ988bcec/er9wG3EYo/Blh0AWdDpQOnl0z4rZFUbffUC4HfZi9pBeSU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ1PR11MB6083.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0XZb+SmNuLsaBNyhbEoT3beiuN+51/hm794/idRHw5aUCvLHjZPi8FJ8lYVY?= =?us-ascii?Q?etfZNYqMctKlR/zJ7wuYGcKRuXSeglPtigpfkRhL5usdl1iNlQgFnVsfRVsD?= =?us-ascii?Q?LlMoHxxjmrn9eKmgOYY7lhMwVWmNSXmtQ5uJ1k/hSm1ET0XMVHl1xo1MVGRk?= =?us-ascii?Q?Qvat6HgZJhpVFvCJiEIRGHI3JEx7IuFUSsytq+6pykYGcqzMvZPrDR3+Jfjb?= =?us-ascii?Q?QWc5KLuaEJk7zGiaZVSWS1O97iEmr3huEGEe83jZlHybQ5XGczO3YrCAdYZ7?= =?us-ascii?Q?l6j5IGsepchLp6qUmO8W+/ZsnhQuQN0muHnGzR0GnAXjfmw5iFHmjtQ2/Lvt?= =?us-ascii?Q?GRnlJjdtMdrjy0GIrjX7cFJJJ1WQ4KEKTyeoWE9Q7KEB6RhkPkp2asjCRfGM?= =?us-ascii?Q?LnB0sFBkaOTpCcEPgkwm53K9A85yCQQln6EoQTCrpfcJGG9EJoyRPX9lp0Su?= =?us-ascii?Q?3dwRL3Cw0TjlBRMn4h36ahOObCB1YxGWvLtw4m27WiJI1l42F/6zHK1a0/I+?= =?us-ascii?Q?HLEm7Y5PfWky5zSkVIn3mGcwxV6kY42FuI9dM2fyU89WSA+hkalb3NGJrxZE?= =?us-ascii?Q?i80Sa2TBNW8TBCh5EZSOJlGNK012WtXROe1guvoJjJRyqFwxIOE6y4SU+emy?= =?us-ascii?Q?kPYAxGxxccKlKAlmOwK34C6q4kjnzlRhW6Lxz+Sa63SoUkoDIAvfNif77kPY?= =?us-ascii?Q?Kpz6FMRHqa1S8t5bn3RtITal9d9t0G1iB40u1kQVa2sUoSLEbTSmrh+x2z+w?= =?us-ascii?Q?t3669b4G2NLpjEMnL5DDW+qlB6ZGHN8H315RhkFNPNNz9D5gZbOXgcweOu5V?= =?us-ascii?Q?carNmZwnHos3l0o56/F5qWCaAQTWuNq9TYSb41R47RQCIdFWf6HrZjrHm4Pn?= =?us-ascii?Q?F7UyqbGupV3FAO/EhJ9KVG1fo39wTLlhS/WnkqUfjvNHmIdbg/+NWFEtnQuR?= =?us-ascii?Q?LqLcpkjClP/bqhw5jghAWUYtHczMN/M94pqZlOSyN1E5Vh5RDYnmY6bkaINA?= =?us-ascii?Q?B9D8BRmESYLFGxG6CGftUnQMFQieWWBcQ887JE0dKj9FVDPSjDoyoV5C+IKr?= =?us-ascii?Q?b2yqB+QKkY6ewhWMSVVy7FiG8tyMTuqXp8zblmx/Dk8vEjB9RcFmnxretye+?= =?us-ascii?Q?rqkuQ2swu5LgzGra8Yvp17aP53PfHEiFWKuUoTayqptd/UnMj3a0JK+19e1y?= =?us-ascii?Q?/0JXgk5yIu1o3qGytR7Eogt1XjaDfjxQ9NpMNz8+WS0tnxV6iMOOKG3B6Zie?= =?us-ascii?Q?i9vStxL2OQn+vS9v7E+KED4q83Xbu7fTZ+i3SAiM10gkR9/Qvna596sJvQ5M?= =?us-ascii?Q?t10IKoXepCQy7uv+Snu6BXqxlllfPQt4FstEoMizQXhzqnygo0trNJg5obPB?= =?us-ascii?Q?sQtuYMayLgfS4j6nh7ZzgzTp8YWW3JlN9UMYH+4MB0fhi9kGZV4fObjvKEaG?= =?us-ascii?Q?ochOaKENvndeG3qB8ZXWFdYrpmNfUq5SoDbb/TBb1ZJ12Fqvbh1KOkwwv0kc?= =?us-ascii?Q?w+lJVLvqprlSxOIEPHkoF7y+pFbhPFdK2UPDGjXKJH+98EKEMVRet3i89fw1?= =?us-ascii?Q?yiwRNO1sDauSMVYo8adKZXnJVMcA9+pS3VIk/NWRKE+7P1WxXhn6wmQSS8DQ?= =?us-ascii?Q?ItUWktUqKOW9vX4QPE7S/vQyfWy9EJeDuVf3JrwPzdfaZQOZ0VsULunzblnn?= =?us-ascii?Q?rbnma2+cdQqk6I6m+jY3zE+djkIpZqjCgu7m289SL3As/yoTuCIcSQ7iPTGf?= =?us-ascii?Q?gLeGn8iwdA=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: a199da6a-1fda-4e7d-b28f-08de75784a10 X-MS-Exchange-CrossTenant-AuthSource: SJ1PR11MB6083.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 20:47:43.5361 (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: Z5KOf1tr3ojwgir21xzE01Vr2lVup9JNxEf2E+ZHFmMPbIhNp2rBAXwmiuJb7lymD5jd6uhOJC0yD1sRDiWqyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6927 X-OriginatorOrg: intel.com I think this resctrl patch should look like this: -Tony >From c1a1b6c681a3a466c6c0bb4ba5a2cdd4dbefdb60 Mon Sep 17 00:00:00 2001 From: Tony Luck Date: Thu, 26 Feb 2026 12:35:54 -0800 Subject: [PATCH] x86/resctrl: Fix SNC detection Now that the x86 topology code has a sensible nodes-per-package measure, that does not depend on the online status of CPUs, use this to divinate the SNC mode. Note that when Cluster on Die (CoD) is configured on older systems this will also show multiple NUMA nodes per package. Intel Resource Director Technology is incomaptible with CoD. Print a warning and do not use the fixup MSR_RMID_SNC_CONFIG. Signed-off-by: Tony Luck --- arch/x86/kernel/cpu/resctrl/monitor.c | 36 ++++----------------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c index e6a154240b8d..8ff0f78b8658 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -364,7 +364,7 @@ void arch_mon_domain_online(struct rdt_resource *r, struct rdt_l3_mon_domain *d) msr_clear_bit(MSR_RMID_SNC_CONFIG, 0); } -/* CPU models that support MSR_RMID_SNC_CONFIG */ +/* CPU models that support SNC and MSR_RMID_SNC_CONFIG */ static const struct x86_cpu_id snc_cpu_ids[] __initconst = { X86_MATCH_VFM(INTEL_ICELAKE_X, 0), X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, 0), @@ -375,40 +375,14 @@ static const struct x86_cpu_id snc_cpu_ids[] __initconst = { {} }; -/* - * There isn't a simple hardware bit that indicates whether a CPU is running - * in Sub-NUMA Cluster (SNC) mode. Infer the state by comparing the - * number of CPUs sharing the L3 cache with CPU0 to the number of CPUs in - * the same NUMA node as CPU0. - * It is not possible to accurately determine SNC state if the system is - * booted with a maxcpus=N parameter. That distorts the ratio of SNC nodes - * to L3 caches. It will be OK if system is booted with hyperthreading - * disabled (since this doesn't affect the ratio). - */ static __init int snc_get_config(void) { - struct cacheinfo *ci = get_cpu_cacheinfo_level(0, RESCTRL_L3_CACHE); - const cpumask_t *node0_cpumask; - int cpus_per_node, cpus_per_l3; - int ret; - - if (!x86_match_cpu(snc_cpu_ids) || !ci) - return 1; + int ret = __num_nodes_per_package; - cpus_read_lock(); - if (num_online_cpus() != num_present_cpus()) - pr_warn("Some CPUs offline, SNC detection may be incorrect\n"); - cpus_read_unlock(); - - node0_cpumask = cpumask_of_node(cpu_to_node(0)); - - cpus_per_node = cpumask_weight(node0_cpumask); - cpus_per_l3 = cpumask_weight(&ci->shared_cpu_map); - - if (!cpus_per_node || !cpus_per_l3) + if (__num_nodes_per_package > 1 && !x86_match_cpu(snc_cpu_ids)) { + pr_warn("CoD enabled system? Resctrl not supported\n"); return 1; - - ret = cpus_per_l3 / cpus_per_node; + } /* sanity check: Only valid results are 1, 2, 3, 4, 6 */ switch (ret) { -- 2.53.0