Do we want CONFIG_WQ_POWER_EFFICIENT_DEFAULT |
||||||||||
Issue descriptionNoticed the proposed rockchip64 config turning this on at: https://chromium-review.googlesource.com/#/c/340506/2/chromeos/config/base.config config WQ_POWER_EFFICIENT_DEFAULT bool "Enable workqueue power-efficient mode by default" depends on PM default n help Per-cpu workqueues are generally preferred because they show better performance thanks to cache locality; unfortunately, per-cpu workqueues tend to be more power hungry than unbound workqueues. Enabling workqueue.power_efficient kernel parameter makes the per-cpu workqueues which were observed to contribute significantly to power consumption unbound, leading to measurably lower power usage at the cost of small performance overhead. This config option determines whether workqueue.power_efficient is enabled by default. If in doubt, say N. --- In our 3.14 and 3.18 kernels we have this off. Presumably we should make a policy call and set it everywhere unless we think some platforms need this and others don't. ...or if we think it's buggy somewhere.
,
Apr 28 2016
Data from here: https://lwn.net/Articles/548281/ (included below) shows ~15% improvement for A15/A7 device with fairly idle task. Definitely seems worthwhile based on that. Lets find some time to validate power-savings and quantify 'small performance' overheard on several platforms before enabling by default. -------------- lwn article snippet --------------------------- Setup: ----- - ARM Vexpress TC2 - big.LITTLE CPU - Core 0-1: A15, 2-4: A7 - rootfs: linaro-ubuntu-devel This patchset has been tested on a big LITTLE system (heterogeneous) but is useful for all other homogeneous systems as well. During these tests audio was played in background using aplay. Results: ------- Cluster A15 Energy Cluster A7 Energy Total ------------------------- ----------------------- ------ Without this patchset (Energy in Joules): --------------------------------------------------- 0.151162 2.183545 2.334707 0.223730 2.687067 2.910797 0.289687 2.732702 3.022389 0.454198 2.745908 3.200106 0.495552 2.746465 3.242017 Average: 0.322866 2.619137 2.942003 With this patchset (Energy in Joules): ----------------------------------------------- 0.226421 2.283658 2.510079 0.151361 2.236656 2.388017 0.197726 2.249849 2.447575 0.221915 2.229446 2.451361 0.347098 2.257707 2.604805 Average: 0.2289042 2.2514632 2.4803674 Above tests are repeated multiple times and events are tracked using trace-cmd and analysed using kernelshark. And it was easily noticeable that idle time for many cpus has increased considerably, which eventually saved some power.
,
Jun 21 2016
,
Jul 31 2016
,
Feb 17 2017
,
Mar 18 2017
Activating. Please assign to the right owner and the appropriate priority.
,
Dec 15 2017
,
Dec 17
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Dec 18
Todd: I guess you used to be the owner here. Should we keep this open or close it WontFix?
,
Dec 18
kicked off a tryjob w/ the config enabled. I'll try it out on a device to see if power savings is worth additional effort.
,
Dec 20
CL: crrev.com/c/1381755 tryjob: https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8926839163960082256 Ran power_Idle on scarlet 10 times for both 'base' & 'tryjob' images Placed raw data here: https://x20.corp.google.com/users/tb/tbroch/scarlet/power/config_wq_power_efficient_default/test_that_scarlet_power_Idle Put some keyvals for statistical comparison here: https://docs.google.com/spreadsheets/d/1oE0sx7Np98_aqnKvnoTuwda9rXKUyTESZ7LRBRyLAZ4/edit#gid=645873200 Don't see any statistically significant improvement there IMO (PNG has summary of gsheet compares of C0 & pwr) Going to wontfix based on that. Please re-open if you feel this analysis is flawed or needs more detail/exploration. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by snanda@chromium.org
, Apr 28 2016