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 <aboor...@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 <vish...@linux.vnet.ibm.com> Tested-by: Vishal Chourasia <vish...@linux.vnet.ibm.com <mailto:vish...@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
signature.asc
Description: PGP signature