linux-stable/drivers/cpuidle/governors
Christian Loehle 4499143980 cpuidle: teo: Remove recent intercepts metric
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@arm.com/

Fixes: 77577558f2 ("cpuidle: teo: Rework most recent idle duration values treatment")
Link: https://patch.msgid.link/20240628095955.34096-3-christian.loehle@arm.com
Signed-off-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2024-06-28 21:03:21 +02:00
..
gov.h cpuidle: menu: Skip tick_nohz_get_sleep_length() call in some cases 2023-08-17 11:28:38 +02:00
haltpoll.c cpuidle: haltpoll: do not shrink guest poll_limit_ns below grow_start 2024-02-12 17:02:51 +01:00
ladder.c cpuidle: ladder: fix ladder_do_selection() kernel-doc 2024-05-07 13:54:58 +02:00
Makefile cpuidle: add haltpoll governor 2019-07-30 17:27:37 +02:00
menu.c cpuidle: menu: Cleanup after loadavg removal 2024-06-07 20:55:00 +02:00
teo.c cpuidle: teo: Remove recent intercepts metric 2024-06-28 21:03:21 +02:00