Re: [PATCH] intel_idle: Add RaptorLake support

From: Zhang, Rui
Date: Thu Jan 19 2023 - 11:15:19 EST


On Thu, 2023-01-19 at 08:02 +0100, Álvaro Fernández Rojas wrote:
> This patch adds RaptorLake support to the intel_idle driver.
>
> Since RaptorLake and AlderLake C-state are characteristics the same,
> we use
> AlderLake C-states tables for RaptorLake as well.

RPL and ADL have same cstates and use the same mwait hints, but the
latency of each c-state are still different on different platforms.
So we can not just duplicate the ADL table on RPL.

There is an effort ongoing that measures the latency of each
cstate on the RPL platforms. And based on the measurement result, we
can decide if a new custom table is needed or we can just copy the
previous platform. Hopefully we will have a patch in a couple of weeks.

thanks,
rui
>
> Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx>
> ---
> drivers/idle/intel_idle.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
> index cfeb24d40d37..1a35b98d9bae 100644
> --- a/drivers/idle/intel_idle.c
> +++ b/drivers/idle/intel_idle.c
> @@ -1429,6 +1429,9 @@ static const struct x86_cpu_id intel_idle_ids[]
> __initconst = {
> X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE, &idle_cpu_adl
> ),
> X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, &idle_cpu_adl
> _l),
> X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_N, &idle_cpu_adl
> _n),
> + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE, &idle_cpu_adl
> ),
> + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_P, &idle_cpu_adl_n),
> + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_S, &idle_cpu_adl),
> X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, &idle_cpu_spr
> ),
> X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL, &idle_cpu_knl),
> X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM, &idle_cpu_knl),
> @@ -1867,6 +1870,9 @@ static void __init
> intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
> case INTEL_FAM6_ALDERLAKE:
> case INTEL_FAM6_ALDERLAKE_L:
> case INTEL_FAM6_ALDERLAKE_N:
> + case INTEL_FAM6_RAPTORLAKE:
> + case INTEL_FAM6_RAPTORLAKE_P:
> + case INTEL_FAM6_RAPTORLAKE_S:
> adl_idle_state_table_update();
> break;
> }