On 28/03/2019 14:33, 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: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog