[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <nd64xabhbb53bbqoxsjkfvkmlpn5tkdlu3nb5ofwdhyauko35b@qv6in7biupgi>
Date: Tue, 14 Oct 2025 20:55:42 +0900
From: Sergey Senozhatsky <senozhatsky@...omium.org>
To: Christian Loehle <christian.loehle@....com>
Cc: Sergey Senozhatsky <senozhatsky@...omium.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Artem Bityutskiy <artem.bityutskiy@...ux.intel.com>, Sasha Levin <sashal@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>, linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org,
Tomasz Figa <tfiga@...omium.org>, stable@...r.kernel.org
Subject: Re: stable: commit "cpuidle: menu: Avoid discarding useful
information" causes regressions
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.
View attachment "6.1-base-after-test" of type "text/plain" (1204 bytes)
View attachment "6.1-base-before-test" of type "text/plain" (1120 bytes)
View attachment "6.1-base-fixup-after-test" of type "text/plain" (1205 bytes)
View attachment "6.1-base-fixup-before-test" of type "text/plain" (1125 bytes)
View attachment "6.1-revert-after-test" of type "text/plain" (1206 bytes)
View attachment "6.1-revert-before-test" of type "text/plain" (1143 bytes)
Powered by blists - more mailing lists