On Thu, Dec 6, 2018 at 12:06 AM Doug Smythies <dsmyth...@telus.net> wrote: > > On 2018.12.03 03:48 Rafael J. Wysocki wrote: > > >>> There is an additional issue where if idle state 0 is disabled (with the > >>> above suggested code patch), > >>> idle state usage seems to fall to deeper states than idle state 1. > >>> This is not the expected behaviour. > >> > >> No, it isn't. > >> > >>> Kernel 4.20-rc3 works as expected. > >>> I have not figured this issue out yet, in the code. > >>> > >>> Example (1 minute per sample. Number of entries/exits per state): > >>> State 0 State 1 State 2 State 3 State 4 Watts > >>> 28235143, 83, 26, 17, 837, 64.900 > >>> 5583238, 657079, 5884941, 8498552, 30986831, 62.433 << > >>> Transition sample, after idle state 0 disabled > >>> 0, 793517, 7186099, 10559878, 38485721, 61.900 << > >>> ?? should have all gone into Idle state 1 > >>> 0, 795414, 7340703, 10553117, 38513456, 62.050 > >>> 0, 807028, 7288195, 10574113, 38523524, 62.167 > >>> 0, 814983, 7403534, 10575108, 38571228, 62.167 > >>> 0, 838302, 7747127, 10552289, 38556054, 62.183 > >>> 9664999, 544473, 4914512, 6942037, 25295361, 63.633 << > >>> Transition sample, after idle state 0 enabled > >>> 27893504, 96, 40, 9, 912, 66.500 > >>> 26556343, 83, 29, 7, 814, 66.683 > >>> 27929227, 64, 20, 10, 931, 66.683 > >> > >> I see. > >> > >> OK, I'll look into this too, thanks! > > > > This probably is the artifact of the fix for the teo_find_shallower_state() > > issue. > > > > Anyway, I'm not able to reproduce this with the teo_find_shallower_state() > > issue > > fixed differently. > > I am not able to reproduce with your teo_find_shallower_state(), or teo V 7, > either. Everything is graceful now, as states are disabled: > (10 seconds per sample. Number of entries/exits per state): > > State 0 State 1 State 2 State 3 State 4 Watts > 0, 6, 4, 1, 414, 3.700 > 2, 4, 30, 3, 578, 3.700 << No > load > 168619, 37, 39, 4, 480, 5.600 << > Transition sample > 4643618, 45, 8, 1, 137, 61.200 << All > idle states enabled > 4736227, 40, 3, 5, 111, 61.800 > 1888417, 4369314, 25, 2, 89, 62.000 << > Transition sample > 0, 7266864, 9, 0, 0, 62.200 << > state 0 disabled > 0, 7193372, 9, 0, 0, 62.700 > 0, 5539898, 1744007, 0, 0, 63.500 << > Transition sample > 0, 0, 8152956, 0, 0, 63.700 << > states 0,1 disabled > 0, 0, 8015151, 0, 0, 63.900 > 0, 0, 4146806, 6349619, 0, 63.000 << > Transition sample > 0, 0, 0, 13252144, 0, 61.600 << > states 0,1,2 disabled > 0, 0, 0, 13258313, 0, 61.800 > 0, 0, 0, 10417428, 1984451, 61.200 << > Transition sample > 0, 0, 0, 0, 9247172, 58.500 << > states 0,1,2,3 disabled > 0, 0, 0, 0, 9242657, 58.500 > 0, 0, 0, 0, 9233749, 58.600 > 0, 0, 0, 0, 9238444, 58.700 > 0, 0, 0, 0, 9236345, 58.600 > > For reference, this is kernel 4.20-rc5 (with your other proposed patches): > > State 0 State 1 State 2 State 3 State 4 Watts > 0, 4, 8, 6, 426, 3.700 > 1592870, 279, 149, 96, 831, 21.800 > 5071279, 154, 25, 6, 105, 61.200 > 5095090, 78, 21, 1, 86, 61.800 > 5001493, 94, 30, 4, 101, 62.200 > 616019, 5446924, 5, 3, 38, 62.500 > 0, 6249752, 0, 0, 0, 63.300 > 0, 6293671, 0, 0, 0, 63.800 > 0, 3751035, 2529964, 0, 0, 64.100 > 0, 0, 6101167, 0, 0, 64.500 > 0, 0, 6172526, 0, 0, 64.700 > 0, 0, 6163797, 0, 0, 64.900 > 0, 0, 1724841, 9567528, 0, 63.300 > 0, 0, 0, 13349668, 0, 62.700 > 0, 0, 0, 13360471, 0, 62.700 > 0, 0, 0, 13355424, 0, 62.700 > 0, 0, 0, 8854491, 3132640, 61.600 > 0, 0, 0, 0, 9302824, 59.000 > 0, 0, 0, 0, 9303561, 58.900 > 0, 0, 0, 0, 9313397, 59.000 > 0, 0, 0, 0, 9333944, 59.000 > > Test kernel: > 94a976a cpuidle: New timer events oriented governor for tickless systems <<< > V7 > 935be4e cpuidle: poll_state: Disregard disable idle states > e3670df cpuidle: Add 'high' and 'low' idle state metrics > dfa672c Documentation: admin-guide: PM: Add cpuidle document > 2595646 Linux 4.20-rc5 > > Reference kernel: > f418681 cpuidle: poll_state: Disregard disable idle states > 1be0e87 cpuidle: Add 'high' and 'low' idle state metrics > 279ec1d Documentation: admin-guide: PM: Add cpuidle document > 2595646 Linux 4.20-rc5
Thanks for the data! I seem to see an improvement with teo as it draws less power in the corresponding bins, roughly speaking.