On 03/28/2019 02:33 PM, Marek Szyprowski wrote: > Since commit 45f1ff59e27c ("cpuidle: Return nohz hint from > cpuidle_select()") Exynos CPUidle driver stopped entering C1 (AFTR) mode > on Exynos4412-based Trats2 board. > > Further analysis revealed that the CPUidle framework changed the way > it handles predicted timer ticks and reported target residency for the > given idle states. As a result, the C1 (AFTR) state was not chosen > anymore on completely idle device. The main issue was to high target > residency value. The similar C1 (AFTR) state for 'coupled' CPUidle > version used 10 times lower value for the target residency, despite > the fact that it is the same state from the hardware perspective. > > The 100000us value for standard C1 (AFTR) mode is there from the begining > of the support for this idle state, added by the commit 67173ca492ab > ("ARM: EXYNOS: Add support AFTR mode on EXYNOS4210"). That commit doesn't > give any reason for it, instead it looks like it was blindly copied from > the WFI/IDLE state of the same driver that time. That time, that value > was probably not really used by the framework for any critical decision, > so it didn't matter that much. > > Now it turned out to be an issue, so unify the target residency with the > 'coupled' version, as it seems to better match the real use case values > and restores the operation of the Exynos CPUidle driver on the idle > device. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx> Thank you for fixing this! > --- > drivers/cpuidle/cpuidle-exynos.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpuidle/cpuidle-exynos.c b/drivers/cpuidle/cpuidle-exynos.c > index a95c7907a1fb..7284495d4869 100644 > --- a/drivers/cpuidle/cpuidle-exynos.c > +++ b/drivers/cpuidle/cpuidle-exynos.c > @@ -84,7 +84,7 @@ static struct cpuidle_driver exynos_idle_driver = { > [1] = { > .enter = exynos_enter_lowpower, > .exit_latency = 300, > - .target_residency = 100000, > + .target_residency = 10000, > .name = "C1", > .desc = "ARM power down", > }, > Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics