Skip to contentSkip to conversation

FAILED: patch "[PATCH] x86/resctrl: Add missing resctrl initialization for Hygon" failed to apply to 5.10-stable tree

PATCH In review [email protected] 3 participants 6 messages Jan 20 – Jan 21

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x 6ee98aabdc700b5705e4f1833e2edc82a826b53b
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026012056-existing-collide-49ad@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..

Possible dependencies:

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 6ee98aabdc700b5705e4f1833e2edc82a826b53b Mon Sep 17 00:00:00 2001
From: Xiaochen Shen <[email protected]>
Date: Tue, 9 Dec 2025 14:26:49 +0800
Subject: [PATCH] x86/resctrl: Add missing resctrl initialization for Hygon

Hygon CPUs supporting Platform QoS features currently undergo partial resctrl initialization through resctrl_cpu_detect() in the Hygon BSP init helper and AMD/Hygon common initialization code. However, several critical data structures remain uninitialized for Hygon CPUs in the following paths:

- get_mem_config()-> __rdt_get_mem_config_amd():
rdt_resource::membw,alloc_capable
hw_res::num_closid

- rdt_init_res_defs()->rdt_init_res_defs_amd():
rdt_resource::cache
hw_res::msr_base,msr_update

Add the missing AMD/Hygon common initialization to ensure proper Platform QoS functionality on Hygon CPUs.

Fixes d8df126349da ("x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper")
arch/x86/kernel/cpu/resctrl/core.c +4 -2
index 3792ab4819dc..10de1594d328 100644
@@ -825,7 +825,8 @@ static __init bool get_mem_config(void)
 
 	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
 		return __get_mem_config_intel(&hw_res->r_resctrl);
-	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+		 boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
 		return __rdt_get_mem_config_amd(&hw_res->r_resctrl);
 
 	return false;
@@ -987,7 +988,8 @@ static __init void rdt_init_res_defs(void)
 {
 	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
 		rdt_init_res_defs_intel();
-	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+		 boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
 		rdt_init_res_defs_amd();
 }
 
maintainer
#1 lore raw

PATCH 1/2 x86/resctrl: Fix kernel-doc in internal.h

From: "Fabio M. De Francesco" <[email protected]>

[ Upstream commit fd2afa70eff057fab57c9e06708b68677b261a0c ]

Add description of undocumented parameters. Issues detected by scripts/kernel-doc.

Stable-dep-of: 6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon")

---
 arch/x86/kernel/cpu/resctrl/internal.h | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)
arch/x86/kernel/cpu/resctrl/internal.h +14 -7
index f65d3c0dbc417..ec35fcad29356 100644
@@ -70,6 +70,7 @@ DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
  * struct mon_evt - Entry in the event list of a resource
  * @evtid:		event id
  * @name:		name of the event
+ * @list:		entry in &rdt_resource->evt_list
  */
 struct mon_evt {
 	u32			evtid;
@@ -78,10 +79,13 @@ struct mon_evt {
 };
 
 /**
- * struct mon_data_bits - Monitoring details for each event file
- * @rid:               Resource id associated with the event file.
+ * union mon_data_bits - Monitoring details for each event file
+ * @priv:              Used to store monitoring event data in @u
+ *                     as kernfs private data
+ * @rid:               Resource id associated with the event file
  * @evtid:             Event id associated with the event file
  * @domid:             The domain to which the event file belongs
+ * @u:                 Name of the bit fields struct
  */
 union mon_data_bits {
 	void *priv;
@@ -119,6 +123,7 @@ enum rdt_group_type {
  * @RDT_MODE_PSEUDO_LOCKSETUP: Resource group will be used for Pseudo-Locking
  * @RDT_MODE_PSEUDO_LOCKED: No sharing of this resource group's allocations
  *                          allowed AND the allocations are Cache Pseudo-Locked
+ * @RDT_NUM_MODES: Total number of modes
  *
  * The mode of a resource group enables control over the allowed overlap
  * between allocations associated with different resource groups (classes
@@ -142,7 +147,7 @@ enum rdtgrp_mode {
 
 /**
  * struct mongroup - store mon group's data in resctrl fs.
- * @mon_data_kn		kernlfs node for the mon_data directory
+ * @mon_data_kn:		kernfs node for the mon_data directory
  * @parent:			parent rdtgrp
  * @crdtgrp_list:		child rdtgroup node list
  * @rmid:			rmid for this rdtgroup
@@ -282,11 +287,11 @@ struct rftype {
 /**
  * struct mbm_state - status for each MBM counter in each domain
  * @chunks:	Total data moved (multiply by rdt_group.mon_scale to get bytes)
- * @prev_msr	Value of IA32_QM_CTR for this RMID last time we read it
+ * @prev_msr:	Value of IA32_QM_CTR for this RMID last time we read it
  * @prev_bw_msr:Value of previous IA32_QM_CTR for bandwidth counting
- * @prev_bw	The most recent bandwidth in MBps
- * @delta_bw	Difference between the current and previous bandwidth
- * @delta_comp	Indicates whether to compute the delta_bw
+ * @prev_bw:	The most recent bandwidth in MBps
+ * @delta_bw:	Difference between the current and previous bandwidth
+ * @delta_comp:	Indicates whether to compute the delta_bw
  */
 struct mbm_state {
 	u64	chunks;
@@ -456,11 +461,13 @@ struct rdt_parse_data {
  * @data_width:		Character width of data when displaying
  * @domains:		All domains for this resource
  * @cache:		Cache allocation related data
+ * @membw:		If the component has bandwidth controls, their properties.
  * @format_str:		Per resource format string to show domain value
  * @parse_ctrlval:	Per resource function pointer to parse control values
  * @evt_list:		List of monitoring events
  * @num_rmid:		Number of RMIDs available
  * @mon_scale:		cqm counter * mon_scale = occupancy in bytes
+ * @mbm_width:		Monitor width, to detect and correct for overflow.
  * @fflags:		flags to choose base and info files
  */
 struct rdt_resource {
Signature · 1 line
2.51.0
maintainer
#2 lore raw

PATCH 2/2 x86/resctrl: Add missing resctrl initialization for Hygon

From: Xiaochen Shen <[email protected]>

[ Upstream commit 6ee98aabdc700b5705e4f1833e2edc82a826b53b ]

Hygon CPUs supporting Platform QoS features currently undergo partial resctrl initialization through resctrl_cpu_detect() in the Hygon BSP init helper and AMD/Hygon common initialization code. However, several critical data structures remain uninitialized for Hygon CPUs in the following paths:

- get_mem_config()-> __rdt_get_mem_config_amd():
rdt_resource::membw,alloc_capable
hw_res::num_closid

- rdt_init_res_defs()->rdt_init_res_defs_amd():
rdt_resource::cache
hw_res::msr_base,msr_update

Add the missing AMD/Hygon common initialization to ensure proper Platform QoS functionality on Hygon CPUs.

Fixes d8df126349da ("x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper")
[ Adjust context ]
---
 arch/x86/kernel/cpu/resctrl/core.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
arch/x86/kernel/cpu/resctrl/core.c +4 -2
index 32005e229c03c..7dae63a953abc 100644
@@ -834,7 +834,8 @@ static __init bool get_mem_config(void)
 
 	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
 		return __get_mem_config_intel(&rdt_resources_all[RDT_RESOURCE_MBA]);
-	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+		 boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
 		return __rdt_get_mem_config_amd(&rdt_resources_all[RDT_RESOURCE_MBA]);
 
 	return false;
@@ -960,7 +961,8 @@ static __init void rdt_init_res_defs(void)
 {
 	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
 		rdt_init_res_defs_intel();
-	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+	else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+		 boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
 		rdt_init_res_defs_amd();
 }
 
Signature · 1 line
2.51.0
maintainer
#3 lore raw

Re: [PATCH 5.10.y 1/2] x86/resctrl: Fix kernel-doc in internal.h

In reply to Sasha Levin

Hi Sasha,

Quoted 4 lines · Sasha Levin

From: "Fabio M. De Francesco" <[email protected]>

[ Upstream commit fd2afa70eff057fab57c9e06708b68677b261a0c ]

Quoted 8 lines

Add description of undocumented parameters. Issues detected by scripts/kernel-doc.

Stable-dep-of: 6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon")

I cannot see how this patch is a dependency for above since it only adjusts kernel-doc in a different file.

Reinette

maintainer
#4 lore raw

Re: [PATCH 5.10.y 1/2] x86/resctrl: Fix kernel-doc in internal.h

Quoted 10 lines · Reinette Chatre

Hi Sasha,

Quoted 7 lines · Sasha Levin

From: "Fabio M. De Francesco" <[email protected]>

[ Upstream commit fd2afa70eff057fab57c9e06708b68677b261a0c ]

Add description of undocumented parameters. Issues detected by scripts/kernel-doc.

Quoted 8 lines
Quoted 5 lines

Stable-dep-of: 6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon")

I cannot see how this patch is a dependency for above since it only adjusts kernel-doc in a different file.

You're obviously correct :)

The full dependency chain is:

6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon") 63c8b1231929 ("x86/resctrl: Split struct rdt_resource") fd2afa70eff0 ("x86/resctrl: Fix kernel-doc in internal.h")

After applying that, I've decided to drop 63c8b1231929 as it's fairly big and just rework 6ee98aabdc70.

I should have dropped fd2afa70eff0 too.

Signature · 2 lines
Thanks,
Sasha
maintainer
#5 lore raw

Re: [PATCH 5.10.y 1/2] x86/resctrl: Fix kernel-doc in internal.h

Hi Sasha,

Quoted 24 lines · Sasha Levin
Quoted 10 lines · Reinette Chatre

Hi Sasha,

Quoted 7 lines · Sasha Levin

From: "Fabio M. De Francesco" <[email protected]>

[ Upstream commit fd2afa70eff057fab57c9e06708b68677b261a0c ]

Add description of undocumented parameters. Issues detected by scripts/kernel-doc.

Quoted 8 lines
Quoted 5 lines

Stable-dep-of: 6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon")

I cannot see how this patch is a dependency for above since it only adjusts kernel-doc in a different file.

You're obviously correct :)

The full dependency chain is:

Quoted 9 lines

  6ee98aabdc70 ("x86/resctrl: Add missing resctrl initialization for Hygon") 63c8b1231929 ("x86/resctrl: Split struct rdt_resource") fd2afa70eff0 ("x86/resctrl: Fix kernel-doc in internal.h")

After applying that, I've decided to drop 63c8b1231929 as it's fairly big and just rework 6ee98aabdc70.

I should have dropped fd2afa70eff0 too.

Ah - I see. Thank you very much for handling the backport of the fix.

Reinette