[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87imd439lg.fsf@mpe.ellerman.id.au>
Date: Thu, 27 Aug 2020 16:07:39 +1000
From: Michael Ellerman <mpe@...erman.id.au>
To: Pratik Sampat <psampat@...ux.ibm.com>,
Christophe Leroy <christophe.leroy@...roup.eu>,
linuxppc-dev@...ts.ozlabs.org, npiggin@...il.com,
mikey@...ling.org, ego@...ux.vnet.ibm.com, svaidy@...ux.ibm.com,
linux-kernel@...r.kernel.org, pratik.r.sampat@...il.com
Subject: Re: [PATCH] Revert "powerpc/powernv/idle: Replace CPU feature check with PVR check"
Pratik Sampat <psampat@...ux.ibm.com> writes:
> On 26/08/20 2:07 pm, Christophe Leroy wrote:
>> 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@...ux.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();
>
> In order to use PVR_POWER10 I would need to define it under
> arch/powerpc/include/asm/reg.h, which is not present in 5.9 yet.
>
> However, if it okay with @mpe I could split out Nick's P10 stop driver
> (https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-August/216773.html)
> into two parts:
I'll just take this for now, it's the simplest option.
cheers
Powered by blists - more mailing lists