cpuidle: teo: Remove recent intercepts metric
authorChristian Loehle <christian.loehle@arm.com>
Fri, 28 Jun 2024 09:59:54 +0000 (10:59 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 28 Jun 2024 19:03:21 +0000 (21:03 +0200)
commit449914398083148f93d070a8aace04f9ec296ce3
tree2251d53ce92c1f9046774272f8631c65a2582222
parent0a2998fa48f0b00c20628b02b80bd7fa3582626d
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: 77577558f25d ("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>
drivers/cpuidle/governors/teo.c