On (25/10/14 11:25), Christian Loehle wrote:
On 10/14/25 11:23, Sergey Senozhatsky wrote:
On (25/10/14 10:50), Christian Loehle wrote:
Upstream fixup fa3fa55de0d ("cpuidle: governors: menu: Avoid using invalid recent intervals data") doesn't address the problems we are observing. Revert seems to be bringing performance metrics back to pre-regression levels.
Any details would be much appreciated. How do the idle state usages differ with and without "cpuidle: menu: Avoid discarding useful information"? What do the idle states look like in your platform?
Sure, I can run tests. How do I get the numbers/stats that you are asking for?
Ideally just dump cat /sys/devices/system/cpu/cpu*/cpuidle/state*/* before and after the test.
OK, got some data for you. The terminology being used here is as follows:
- 6.1-base is 6.1 stable with a9edb700846 "cpuidle: menu: Avoid discarding useful information"
- 6.1-base-fixup is 6.1 stable with a9edb700846 and fa3fa55de0d6 "cpuidle: governors: menu: Avoid using invalid recent intervals data" cherry-pick
- 6.1-revert is 6.1 stable with a9edb700846 reverted (and no fixup commit, obviously)
Just to show the scale of regression, results of some of the benchmarks:
6.1-base: 84.5 6.1-base-fixup: 76.5 6.1-revert: 59.5
(lower is better, 6.1-revert has the same results as previous stable kernels).
Please find /sys/devices/system/cpu/cpu*/cpuidle/state*/* dumps attached (6 files).
The cpuidle/state*/* directory structure is as follows (NOTE: dumps don't contain s2idle subdirs):
/sys/devices/system/cpu/cpu1/cpuidle/ |-- state0 | |-- above | |-- below | |-- default_status | |-- desc | |-- disable | |-- latency | |-- name | |-- power | |-- rejected | |-- residency | |-- time | `-- usage |-- state1 | |-- above | |-- below | |-- default_status | |-- desc | |-- disable | |-- latency | |-- name | |-- power | |-- rejected | |-- residency | |-- s2idle | | |-- time | | `-- usage | |-- time | `-- usage |-- state2 | |-- above | |-- below | |-- default_status | |-- desc | |-- disable | |-- latency | |-- name | |-- power | |-- rejected | |-- residency | |-- s2idle | | |-- time | | `-- usage | |-- time | `-- usage `-- state3 |-- above |-- below |-- default_status |-- desc |-- disable |-- latency |-- name |-- power |-- rejected |-- residency |-- s2idle | |-- time | `-- usage |-- time `-- usage
Hope this helps.