[PATCH] x86/idle: Implement support for Meteor Lake

Alex XZ Cypher Zero posted 1 patch 3 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/2a647ec92d9a66164029c5f8f3c7c8e8f1e06f18.1751916639.git.me@alex0.net
There is a newer version of this series
xen/arch/x86/cpu/mwait-idle.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] x86/idle: Implement support for Meteor Lake
Posted by Alex XZ Cypher Zero 3 months, 3 weeks ago
Adds support for Meteor Lake C-states. As the spec is identical to Alder Lake as per the Intel specs, I've reused the Alder Lake codepath.

Signed-off-by: Alex XZ Cypher Zero <me@alex0.net>
---
 xen/arch/x86/cpu/mwait-idle.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index 5e98011bfd..c8bf58b150 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1148,6 +1148,8 @@ static const struct x86_cpu_id intel_idle_ids[] __initconstrel = {
 	ICPU(ICELAKE_D,			icx),
 	ICPU(ALDERLAKE,			adl),
 	ICPU(ALDERLAKE_L,		adl_l),
+	ICPU(METEORLAKE,		adl),
+	ICPU(METEORLAKE_L,		adl_l)
 	ICPU(SAPPHIRERAPIDS_X,		spr),
 	ICPU(ATOM_GOLDMONT,		bxt),
 	ICPU(ATOM_GOLDMONT_PLUS,	bxt),
@@ -1386,6 +1388,8 @@ static void __init mwait_idle_state_table_update(void)
 		break;
 	case INTEL_FAM6_ALDERLAKE:
 	case INTEL_FAM6_ALDERLAKE_L:
+	case INTEL_FAM6_METEORLAKE:
+	case INTEL_FAM6_METEORLAKE_L:
 		adl_idle_state_table_update();
 		break;
 	}
-- 
2.50.0
Re: [PATCH] x86/idle: Implement support for Meteor Lake
Posted by Jan Beulich 3 months, 3 weeks ago
On 07.07.2025 21:30, Alex XZ Cypher Zero wrote:
> Adds support for Meteor Lake C-states. As the spec is identical to Alder Lake as per the Intel specs, I've reused the Alder Lake codepath.

Changes like this want to be done by pulling in respective Linux commits,
where available. Where not available, things need clarifying with more
detail. In particular here, "the spec is identical" doesn't look to match
what was done on the Linux side.

I think I need to go and pick up a number of Linux commits ...

Jan

> --- a/xen/arch/x86/cpu/mwait-idle.c
> +++ b/xen/arch/x86/cpu/mwait-idle.c
> @@ -1148,6 +1148,8 @@ static const struct x86_cpu_id intel_idle_ids[] __initconstrel = {
>  	ICPU(ICELAKE_D,			icx),
>  	ICPU(ALDERLAKE,			adl),
>  	ICPU(ALDERLAKE_L,		adl_l),
> +	ICPU(METEORLAKE,		adl),
> +	ICPU(METEORLAKE_L,		adl_l)
>  	ICPU(SAPPHIRERAPIDS_X,		spr),
>  	ICPU(ATOM_GOLDMONT,		bxt),
>  	ICPU(ATOM_GOLDMONT_PLUS,	bxt),
> @@ -1386,6 +1388,8 @@ static void __init mwait_idle_state_table_update(void)
>  		break;
>  	case INTEL_FAM6_ALDERLAKE:
>  	case INTEL_FAM6_ALDERLAKE_L:
> +	case INTEL_FAM6_METEORLAKE:
> +	case INTEL_FAM6_METEORLAKE_L:
>  		adl_idle_state_table_update();
>  		break;
>  	}