RE: [PATCH v1 0/5] cpuidle: teo: Rework the idle state selection logic
From: Doug Smythies <hidden>
Date: 2021-07-27 20:06:43
Also in:
lkml
Hi Rafael, Further to my reply of 2021.07.04 on this, I have continued to work with and test this patch set. On 2021.06.02 11:14 Rafael J. Wysocki wrote:
This series of patches addresses some theoretical shortcoming in the TEO (Timer Events Oriented) cpuidle governor by reworking its idle state selection logic to some extent. Patches [1-2/5] are introductory cleanups and the substantial changes are made in patches [3-4/5] (please refer to the changelogs of these two patches for details). The last patch only deals with documentation. Even though this work is mostly based on theoretical considerations, it shows a measurable reduction of the number of cases in which the shallowest idle state is selected while it would be more beneficial to select a deeper one or the deepest idle state is selected while it would be more beneficial to select a shallower one, which should be a noticeable improvement.
I am concentrating in the idle state 0 and 1 area. When I disable idle state 0, the expectation is its usage will fall to idle state 1. It doesn't. Conditions: CPU: Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz HWP: disabled CPU frequency scaling driver: intel_pstate, active CPU frequency scaling governor: performance. Idle configuration: As a COMETLAKE processor, with 4 idle states. Sample time for below: 1 minute. Workflow: Cross core named pipe token passing, 12 threads. Kernel 5.14-rc3: idle: teo governor All idle states enabled: PASS Processor: 97 watts Idle state 0 entries: 811151 Idle state 1 entries: 140300776 Idle state 2 entries: 889 Idle state 3 entries: 8 Idle state 0 disabled: FAIL <<<<< Processor: 96 watts Idle state 0 entries: 0 Idle state 1 entries: 65599283 Idle state 2 entries: 364399 Idle state 3 entries: 65112651 Kernel 5.14-rc3: idle: menu governor All idle states enabled: PASS Processor: 102 watts Idle state 0 entries: 169320747 Idle state 1 entries: 1860110 Idle state 2 entries: 14 Idle state 3 entries: 54 Idle state 0 disabled: PASS Processor: 96.7 watts Idle state 0 entries: 0 Idle state 1 entries: 141936790 Idle state 2 entries: 0 Idle state 3 entries: 6 Prior to this patch set: Kernel 5.13: idle: teo governor All idle states enabled: PASS Processor: 97 watts Idle state 0 entries: 446735 Idle state 1 entries: 140903027 Idle state 2 entries: 0 Idle state 3 entries: 0 Idle state 0 disabled: PASS Processor: 96 watts Idle state 0 entries: 0 Idle state 1 entries: 139308125 Idle state 2 entries: 0 Idle state 3 entries: 0 I haven't tried to isolate the issue in the code, yet. Nor have I explored to determine if there might be other potential idle state disabled issues. ... Doug