Hello Dietmar,
On 03/08/2017 05:58 AM, Dietmar Eggemann wrote:
On 20/02/17 20:24, Dietmar Eggemann wrote:
Hi Thara,
I'm currently running your patch on 'EAS product line minus the two misfit patches':
"WIP: sched: Add group_misfit_task load-balance type" "WIP: sched: Consider misfit tasks when load-balancing"
on my Pixel phone to be able to compare the behaviour. That's why some of my questions/remarks might be very (too) specific :-)
Like promised I ran your patch on top of the EAS production code line:
https://android.googlesource.com/kernel/msm.git/+/android-msm-marlin-3.18-no...
I removed the 'misfit task' code in the product code line before I applied Peter Z.'s 'struct sched_domain_shared' patches and yours on top. So there is _no_ 'misfit task' handling in this stack.
The testcase is Jankbench w/o and w/ your patches using schedfreq (sched) and schedutil governor.
I shared the Lisa ipython notebook here: https://drive.google.com/drive/folders/0B2f-ZAwV_YnmMWFjMWxZanNLaWM
android_jankbench_listview_50iter_2govs_2017-03-07_16-19-02 - baseline android_jankbench_listview_50iter_2govs_2017-03-07_16-22-32 - your patch
(even the name implies 50 iterations, we only run 1 for now)
E.g. cell [55] shows the 'total frame duration' and cell [65] the energy consumption.
To be able to see the influence of your implementation on the ratio between overutilized (OU) and non-overutilized (NON_OU) wakeups, we integrated per-rq counters in the wakeup-path. Please note that the wakeup path in the EAS product codeline is different to the mainline wakeup path. We're planning to integrate these counters into a updated version of the EAS production code line mentioned above.
Fundamentally the sum of the counters 'sis_attempts' (sis ... select_idle_sibling) and 'cas_attempts' (cas ... capacity-aware scheduling) give the number of OU wakeups and the counter 'secb_attempts' (secb ... select_energy_cpu_brute) gives the number of NON-OU wakeups:
Counters are for 1 iteration of Jankbench:
android_jankbench_listview_50iter_2govs_2017-03-07_16-19-02 - baseline
sis_attempts + cas_attempts = 9635 + 21163 = 30798
secb_attempts = 55360
android_jankbench_listview_50iter_2govs_2017-03-07_16-22-32 - w/ your patch
sis_attempts + cas_attempts = 7195 + 12574 = 19769
secb_attempts = 68785
(The counters are not shown in the Lisa notebook)
So it seems that the wakeup path runs more often in an NON_OU scenario, a result which was somehow expected.
The test further hints towards the fact that performance and energy consumption does not regress.
Promising ... so maybe we could integrate this patch in EASv1.3? But first we have to weld it to the 'misfit task' functionality, I guess ...
Yes, The results are promising and on target with what was expected. I have not seen the WIP misfit patches to comment on the usability of those with this patch. I work on latest arm eas dev branch and these patches are not part of the mainline. Can you point me to those patches, please?
Regards Thara
Cheers,
-- Dietmar
[...]
-- Regards Thara