[PATCH] Revert "powerpc/powernv/idle: Replace CPU feature check with PVR check"

Christophe Leroy christophe.leroy at csgroup.eu
Wed Aug 26 18:37:13 AEST 2020



Le 26/08/2020 à 10:29, Pratik Rajesh Sampat a écrit :
> Cpuidle stop state implementation has minor optimizations for P10
> where hardware preserves more SPR registers compared to P9.
> The current P9 driver works for P10, although does few extra
> save-restores. P9 driver can provide the required power management
> features like SMT thread folding and core level power savings
> on a P10 platform.
> 
> Until the P10 stop driver is available, revert the commit which
> allows for only P9 systems to utilize cpuidle and blocks all
> idle stop states for P10.
> Cpu idle states are enabled and tested on the P10 platform
> with this fix.
> 
> This reverts commit 8747bf36f312356f8a295a0c39ff092d65ce75ae.
> 
> Fixes: 8747bf36f312 ("powerpc/powernv/idle: Replace CPU feature check with PVR check")
> Signed-off-by: Pratik Rajesh Sampat <psampat at linux.ibm.com>
> ---
>   @mpe: This revert would resolve a staging issue wherein the P10 stop
>   driver is not yet ready while cpuidle stop states need not be blocked
>   on 5.9 for Power10 systems which could cause SMT folding related
>   performance issues.
> 
>   The P10 stop driver is in the works here:
>   https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-August/216773.html
> 
>   arch/powerpc/platforms/powernv/idle.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/idle.c b/arch/powerpc/platforms/powernv/idle.c
> index 77513a80cef9..345ab062b21a 100644
> --- a/arch/powerpc/platforms/powernv/idle.c
> +++ b/arch/powerpc/platforms/powernv/idle.c
> @@ -1223,7 +1223,7 @@ static void __init pnv_probe_idle_states(void)
>   		return;
>   	}
>   
> -	if (pvr_version_is(PVR_POWER9))
> +	if (cpu_has_feature(CPU_FTR_ARCH_300))

Why not something like:

	if (pvr_version_is(PVR_POWER9) || pvr_version_is(PVR_POWER10))
		pnv_power9_idle_init();


>   		pnv_power9_idle_init();
>   
>   	for (i = 0; i < nr_pnv_idle_states; i++)
> 

Christophe


More information about the Linuxppc-dev mailing list