[PATCH v2] powerpc/cpuidle: Set CPUIDLE_FLAG_POLLING for snooze state

Vishal Chourasia vishalc at linux.vnet.ibm.com
Sat Nov 19 19:49:52 AEDT 2022


On Mon, Nov 14, 2022 at 08:26:11PM +0530, Aboorva Devarajan wrote:
> During the comparative study of cpuidle governors, it is noticed that the
> menu governor does not select CEDE state in some scenarios even though when
> the sleep duration of the CPU exceeds the target residency of the CEDE idle
> state this is because the CPU exits the snooze "polling" state when snooze
> time limit is reached in the snooze_loop(), which is not a real wake up
> and it just means that the polling state selection was not adequate.
> 
> cpuidle governors rely on CPUIDLE_FLAG_POLLING flag to be set for the
> polling states to handle the condition mentioned above.
> 
> Hence, set the CPUIDLE_FLAG_POLLING flag for snooze state (polling state)
> in powerpc arch to make the cpuidle governor work as expected.
> 
> Reference Commits:
> 
> - Timeout enabled for snooze state:
>   commit 78eaa10f027c
>   ("cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state")
> 
> - commit dc2251bf98c6
>   ("cpuidle: Eliminate the CPUIDLE_DRIVER_STATE_START symbol")
> 
> - Fix wakeup stats in governor for polling states
>   commit 5f26bdceb9c0
>   ("cpuidle: menu: Fix wakeup statistics updates for polling state")
> 
> Signed-off-by: Aboorva Devarajan <aboorvad at linux.vnet.ibm.com>
> ---
> 
> Changelog: (v1 -> v2)
> 
> Added CPUIDLE_POLLING_FLAG to the correct cpuidle_state struct.
> 
> Previous version of the patch is stale which was sent by mistake, this 
> is the correct version which is tested on powernv, pseries (shared and 
> dedicated partitions)
> 
>  drivers/cpuidle/cpuidle-powernv.c | 5 ++++-
>  drivers/cpuidle/cpuidle-pseries.c | 8 ++++++--
>  2 files changed, 10 insertions(+), 3 deletions(-)

Thanks for the patch.
Tested it on top of v6.0-rc4
Against workload: https://github.com/gautshen/misc/tree/master/cpuidle-smt-performance

Reviewed-by: Vishal Chourasia <vishalc at linux.vnet.ibm.com>
Tested-by: Vishal Chourasia <vishalc at linux.vnet.ibm.com <mailto:vishalc at linux.vnet.ibm.com>>

|----------------+--------+-----------------------+----------------------|
| wake up period | state  | % time spent (before) | % time spent (after) |
|----------------+--------+-----------------------+----------------------|
| 110 us         | snooze | 95.40 %               | 1.17 %               |
|                | CEDE   | 0.03 %                | 92.67 %              |
|----------------+--------+-----------------------+----------------------|
| 120 us         | snooze | 96.37 %               | 1.18 %               |
|                | CEDE   | 0.05 %                | 94.57 %              |
|----------------+--------+-----------------------+----------------------|
| 130 us         | snooze | 17.12 %               | 1.21 %               |
|                | CEDE   | 78.16 %               | 94.71 %              |
|----------------+--------+-----------------------+----------------------|
| 230 us         | snooze | 95.38 %               | 0.64 %               |
|                | CEDE   | 2.55 %                | 97.06 %              |
|----------------+--------+-----------------------+----------------------|
| 240 us         | snooze | 96.86 %               | 0.62 %               |
|                | CEDE   | 1.14 %                | 97.17 %              |
|----------------+--------+-----------------------+----------------------|
| 250 us         | snooze | 1.38 %                | 0.59 %               |
|                | CEDE   | 96.46 %               | 97.28 %              |
|----------------+--------+-----------------------+----------------------|
| 350 us         | snooze | 62.91 %               | 0.42 %               |
|                | CEDE   | 35.56 %               | 98.04 %              |
|----------------+--------+-----------------------+----------------------|
| 360 us         | snooze | 11.93 %               | 0.34 %               |
|                | CEDE   | 86.56 %               | 98.18 %              |
|----------------+--------+-----------------------+----------------------|
| 370 us         | snooze | 6.21 %                | 0.40 %               |
|                | CEDE   | 92.31 %               | 98.16 %              |
|----------------+--------+-----------------------+----------------------|
| 470 us         | snooze | 42.06 %               | 0.31 %               |
|                | CEDE   | 56.74 %               | 98.54 %              |
|----------------+--------+-----------------------+----------------------|
| 480 us         | snooze | 64.67 %               | 0.30 %               |
|                | CEDE   | 34.14 %               | 98.56 %              |
|----------------+--------+-----------------------+----------------------|
| 490 us         | snooze | 0.57 %                | 0.30 %               |
|                | CEDE   | 98.31 %               | 98.60 %              |
|----------------+--------+-----------------------+----------------------|

Note: *before* and *after* (see table heading), simply mean before applying the
patch and after applying the patch

-- vishal.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20221119/468a32d1/attachment.sig>


More information about the Linuxppc-dev mailing list