On Mon, Aug 05, 2024 at 03:58:09PM +0100, Christian Loehle wrote: > commit 449914398083148f93d070a8aace04f9ec296ce3 upstream. > > The logic for recent intercepts didn't work, there is an underflow > of the 'recent' value that can be observed during boot already, which > teo usually doesn't recover from, making the entire logic pointless. > Furthermore the recent intercepts also were never reset, thus not > actually being very 'recent'. > > Having underflowed 'recent' values lead to teo always acting as if > we were in a scenario were expected sleep length based on timers is > too high and it therefore unnecessarily selecting shallower states. > > Experiments show that the remaining 'intercept' logic is enough to > quickly react to scenarios in which teo cannot rely on the timer > expected sleep length. > > See also here: > https://lore.kernel.org/lkml/0ce2d536-1125-4df8-9a5b-0d5e389cd8af@xxxxxxx/ > > Fixes: 77577558f25d ("cpuidle: teo: Rework most recent idle duration values treatment") > Link: https://patch.msgid.link/20240628095955.34096-3-christian.loehle@xxxxxxx > Signed-off-by: Christian Loehle <christian.loehle@xxxxxxx> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/cpuidle/governors/teo.c | 79 ++++++--------------------------- > 1 file changed, 14 insertions(+), 65 deletions(-) We can't just take a 6.1.y backport without newer kernels also having this fix. Can you resend this as backports for all relevant kernels please? thanks, greg k-h