summaryrefslogtreecommitdiff
path: root/powerstats/PowerStats.cpp
AgeCommit message (Collapse)Author
2019-03-18power.stats: Rename column header for rail energyBenjamin Schwartz
lshal debug output was not clear that rail energy is cumulative total since boot. Renaming the column header to clarify this. Bug: 124080758 Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Change-Id: Ib7cff1e9bd9241eb2bbd73b4a5bc1604883a4178
2019-03-18power.stats: Show rail energy data in lshal debugBenjamin Schwartz
lshal debug of power.stats@1.0 service now shows rail energy data. Example output: ============= PowerStats HAL 1.0 rail energy data ============== Subsys Rail Energy <example1> <railName1> 13087.34 mWs <example2> <railName2> 267.46 mWs ========== End of PowerStats HAL 1.0 rail energy data ========== Example output with "delta" option ============= PowerStats HAL 1.0 rail energy data ============== Elapsed time: 86273 ms Subsys Rail Energy ( Delta ) <example1> <railName1> 18496.73 mWs ( 6055.16) <example2> <railName2> 757.76 mWs ( 490.30) ========== End of PowerStats HAL 1.0 rail energy data ========== Bug: 124080758 Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Test: Tried on devices with and without rail energy support Change-Id: I7421aedac07203e14322dc23712cb68f508fcb7c
2019-02-26power.stats: Add AidlStateResidencyDataProviderBenjamin Schwartz
Some drivers that we want to collect power stats from are pass-through and would require significant changes in order to provide a sysfs node that the current power stats framework can pull stats from. These pass-through drivers typically have a userspace daemon that is capable of keeping track of the power stats and providing them to the power.stats HAL service, but currently have no way to do that. The AidlStateResidencyDataProvider will provide a vendor binder service that will allow data sources to register a callback that will get invoked when stats are requested from power.stats HAL. Bug: 117585786 Test: Created a dummy service to register a callback using that provides data for mock entities. Tested that things continue to function when killing either the dummy service or killing power.stats service. Also tested cases where the dummy service provides data for unrecognized entities, or states. Finally, I tested that an error gets logged in logcat if the callback latency exceeds some threshold. Change-Id: I090a33a4b87fc03fc258bece3ee38c90a3575d20
2019-02-13power.stats HAL: optional "delta" arg to debugKelly Rossmoyer
This CL adds a built-in delta tracking/calculation facility in power.stats HAL's implementation of the standard debug() interface. Right now, doing lshal debug android.hardware.power.stats@1.0::IPowerStats/default only displays the current values of all supported power stats. With this CL in place, that command now looks for the optional "delta" argument at the end of the line. When it is present, behavior changes as follows: * a timestamp is captured for the current values * a snapshot is captured of the current values * deltas from the previous timestamp and snapshot are displayed * the very first time "delta" is used after boot, the calculated deltas show up as "none" Note that no behavior is changed when the command is run without the optional "delta" arg, and interspersing non-"delta" commands with "delta" commands won't have any impact (the timestamp and snapshot are not modified by non-"delta" commands). See bug for example output. Bug: 124388963 Test: Ran on multiple device types with various power consumption configurations and verified that the output was both complete and accurate. Change-Id: Ib8d8ae7bf0e6000f4934d7b6caec13d3f5b3115b
2019-01-18power.stats: Clean up pixel specific implementationBenjamin Schwartz
- IStateResidencyDataProvider now uses std::unordered_map instead of std::map. This was originally intended to use an unordered_map. - Changed PowerStats::debug header to "Entity" instead of "Subsystem" - Removed dead code related to dumping of statistics for the old power HAL Bug: 117887759 Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Observed the following output on C2F2: ========== PowerStats HAL 1.0 state residencies ========== Entity State Total time Total entries Last entry timestamp Airbrush Active 0 ms 0 0 ms Airbrush Sleep 0 ms 0 0 ms Airbrush Deep sleep 0 ms 0 0 ms Airbrush Suspend 0 ms 0 0 ms Airbrush Off 0 ms 1 912 ms Airbrush Unknown 0 ms 0 0 ms WLAN Active 31436 ms 0 0 ms WLAN Deep-Sleep 0 ms 0 0 ms SoC AOSD 0 ms 0 0 ms SoC CXSD 0 ms 0 0 ms SoC DDR 0 ms 0 0 ms SLPI Sleep 13747 ms 759 31038 ms CDSP Sleep 15165 ms 98 26055 ms ADSP Sleep 14327 ms 160 25012 ms MPSS Sleep 5 ms 4 22409 ms APSS Sleep 0 ms 0 0 ms ========== End of PowerStats HAL 1.0 state residencies ========== Change-Id: I6a5bc139cfe568a3d5f8876dfc64e9c3725aeb82
2019-01-17Revert "power.stats: Clean up pixel specific implementation"Ryan Mitchell
This reverts commit 2562e2e62f1032c8dd9ec2844ba163ce734a2be5. Reason for revert: <Broke master build> Change-Id: I89da955ddf60c34023319954c3ab77f4ac0a5934
2019-01-16power.stats: Clean up pixel specific implementationBenjamin Schwartz
- IStateResidencyDataProvider now uses std::unordered_map instead of std::map. This was originally intended to use an unordered_map. - Changed PowerStats::debug header to "Entity" instead of "Subsystem" - Removed dead code related to dumping of statistics for the old power HAL Bug: 117887759 Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Observed the following output on C2F2: ========== PowerStats HAL 1.0 state residencies ========== Entity State Total time Total entries Last entry timestamp Airbrush Active 0 ms 0 0 ms Airbrush Sleep 0 ms 0 0 ms Airbrush Deep sleep 0 ms 0 0 ms Airbrush Suspend 0 ms 0 0 ms Airbrush Off 0 ms 1 912 ms Airbrush Unknown 0 ms 0 0 ms WLAN Active 31436 ms 0 0 ms WLAN Deep-Sleep 0 ms 0 0 ms SoC AOSD 0 ms 0 0 ms SoC CXSD 0 ms 0 0 ms SoC DDR 0 ms 0 0 ms SLPI Sleep 13747 ms 759 31038 ms CDSP Sleep 15165 ms 98 26055 ms ADSP Sleep 14327 ms 160 25012 ms MPSS Sleep 5 ms 4 22409 ms APSS Sleep 0 ms 0 0 ms ========== End of PowerStats HAL 1.0 state residencies ========== Change-Id: I85947fa745ba64f8f3c8ec54c0d61c0e19487289
2018-12-04power.stats optimize power.stats implementationBenjamin Schwartz
Reduced some of the extra copying of structures during initialization of power.stats service. Bug: 117175950 Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: Id1d2b3e402a473ca70167c912f57fe729335b9f1
2018-11-30power.stats Implement IPowerStats::debug()Benjamin Schwartz
Implementing debug() for IPowerStats on Pixel devices. Bug: 118346594 Test: adb root && adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default" Test: adb bugreport and checked lshal-debug/android.hardware.power.stats@1.0::IPowerStats_default.txt Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I9bb8d501765520b49a30ac7b191ac13985df490e
2018-11-29power.stats Adding Wlan power entityBenjamin Schwartz
Adding Wlan power entity Pixel devices Bug: 117887759 Bug: 111185513 Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I3edc3efa4447beeedee49afd8576b36c1d6dc995
2018-11-27powerstats: Implement getPowerEntityStateResidencyDataBenjamin Schwartz
Implement getPowerEntityStateResidencyData for pixel devices Bug: 117887759 Bug: 111185513 Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I0919e5793505ff3ddd041ae3bb0ed023a956ca3d
2018-11-12power.stats Implementing getPowerEntityStateInfo for pixel devicesBenjamin Schwartz
Implementing getPowerEntityStateInfo for pixel devices. Bug: 117887759 Bug: 111185513 Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I86031351a0e474902c96523ecd78f7a85ac444ab
2018-11-12power.stats Implementing getPowerEntityInfo for pixel devicesBenjamin Schwartz
Implementing getPowerEntityInfo for pixel devices Bug: 117887759 Bug: 111185513 Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I5cfdd33cc17e75abdc9e043b92b72e8de7fcf204
2018-11-05power.stats: Move power.stats HAL implementation to common pixel codeBenjamin Schwartz
power.stats HAL implementation was located in device specific folders. Moving as much of the implementation to common folder in pixel. Bug: 117887759 Bug: 111185513 Test: run vts -m VtsHalPowerStatsV1_0Target Change-Id: I1a87716bb64da0e413159fb61c243f0ee3a833c3