summaryrefslogtreecommitdiff
path: root/powerstats
diff options
context:
space:
mode:
authorDarren Hsu <darrenhsu@google.com>2022-04-27 01:24:42 +0800
committerTreeHugger Robot <treehugger-gerrit@google.com>2022-05-03 10:26:08 +0000
commit313fe7709cc3a1902cc3f8ac47148808da5aace5 (patch)
tree04980d1c4b18f811c5e6914c2c850db72adc51c8 /powerstats
parent60ccbd668e63d46675924c1ba146cba7cd7503bb (diff)
downloadgs201-313fe7709cc3a1902cc3f8ac47148808da5aace5.tar.gz
powerstats: re-enable AoC power stats reporting with timeout
Bug: 219630658 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: Icb1433bed3438ed4525816e3d3be28b4e0261e89 Signed-off-by: Darren Hsu <darrenhsu@google.com>
Diffstat (limited to 'powerstats')
-rw-r--r--powerstats/Gs201CommonDataProviders.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/powerstats/Gs201CommonDataProviders.cpp b/powerstats/Gs201CommonDataProviders.cpp
index 6232a6e..4ce104f 100644
--- a/powerstats/Gs201CommonDataProviders.cpp
+++ b/powerstats/Gs201CommonDataProviders.cpp
@@ -16,7 +16,7 @@
#include <PowerStatsAidl.h>
#include <Gs201CommonDataProviders.h>
-#include <AocStateResidencyDataProvider.h>
+#include <AocTimedStateResidencyDataProvider.h>
#include <DevfreqStateResidencyDataProvider.h>
#include <DvfsStateResidencyDataProvider.h>
#include <UfsStateResidencyDataProvider.h>
@@ -32,7 +32,7 @@
#include <android/binder_process.h>
#include <log/log.h>
-using aidl::android::hardware::power::stats::AocStateResidencyDataProvider;
+using aidl::android::hardware::power::stats::AocTimedStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
@@ -102,6 +102,8 @@ void addPlaceholderEnergyConsumers(std::shared_ptr<PowerStats> p) {
}
void addAoC(std::shared_ptr<PowerStats> p) {
+ // When the given timeout is 0, the timeout will be replaced with "120ms * statesCount".
+ static const uint64_t TIMEOUT_MILLIS = 0;
std::string prefix = "/sys/devices/platform/19000000.aoc/control/";
// Add AoC cores (a32, ff1, hf0, and hf1)
@@ -113,8 +115,8 @@ void addAoC(std::shared_ptr<PowerStats> p) {
};
std::vector<std::pair<std::string, std::string>> coreStates = {
{"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}};
- p->addStateResidencyDataProvider(std::make_unique<AocStateResidencyDataProvider>(coreIds,
- coreStates));
+ p->addStateResidencyDataProvider(std::make_unique<AocTimedStateResidencyDataProvider>(coreIds,
+ coreStates, TIMEOUT_MILLIS));
// Add AoC voltage stats
std::vector<std::pair<std::string, std::string>> voltageIds = {
@@ -125,7 +127,8 @@ void addAoC(std::shared_ptr<PowerStats> p) {
{"UUD", "ultra_underdrive"},
{"UD", "underdrive"}};
p->addStateResidencyDataProvider(
- std::make_unique<AocStateResidencyDataProvider>(voltageIds, voltageStates));
+ std::make_unique<AocTimedStateResidencyDataProvider>(voltageIds, voltageStates,
+ TIMEOUT_MILLIS));
// Add AoC monitor mode
std::vector<std::pair<std::string, std::string>> monitorIds = {
@@ -135,7 +138,8 @@ void addAoC(std::shared_ptr<PowerStats> p) {
{"MON", "mode"},
};
p->addStateResidencyDataProvider(
- std::make_unique<AocStateResidencyDataProvider>(monitorIds, monitorStates));
+ std::make_unique<AocTimedStateResidencyDataProvider>(monitorIds, monitorStates,
+ TIMEOUT_MILLIS));
// Add AoC restart count
const GenericStateResidencyDataProvider::StateResidencyConfig restartCountConfig = {
@@ -642,9 +646,7 @@ void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p) {
setEnergyMeter(p);
addPixelStateResidencyDataProvider(p);
- // TODO(b/220032540): Re-enable AoC reporting when AoC long latency issue is fixed or
- // the timeout mechanism is merged.
- //addAoC(p);
+ addAoC(p);
addDvfsStats(p);
addSoC(p);
addCPUclusters(p);