From 573f0586ddb44623c249a22ea1a0c4f4f4f4099a Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Tue, 12 Dec 2023 23:33:52 +0800 Subject: [PATCH] powerstats: change TPU DVFS data source from ACPM to TPU kernel ACPM has an issue b/315079424 that reports incorrect TPU DVFS residency. So change the data source from ACPM to TPU kernel. Bug: 310094590 Test: vts-tradefed run vts -m VtsHalPowerStatsTargetTest Change-Id: Ifc7ee18a7e891eb79e53affeab81c9d497db9e9f Signed-off-by: Darren Hsu --- powerstats/ZumaProCommonDataProviders.cpp | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/powerstats/ZumaProCommonDataProviders.cpp b/powerstats/ZumaProCommonDataProviders.cpp index 1908d1e..46de9e3 100644 --- a/powerstats/ZumaProCommonDataProviders.cpp +++ b/powerstats/ZumaProCommonDataProviders.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -45,6 +46,7 @@ using aidl::android::hardware::power::stats::GenericStateResidencyDataProvider; using aidl::android::hardware::power::stats::IioEnergyMeterDataProvider; using aidl::android::hardware::power::stats::PixelStateResidencyDataProvider; using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer; +using aidl::android::hardware::power::stats::TpuDvfsStateResidencyDataProvider; // TODO (b/181070764) (b/182941084): // Remove this when Wifi/BT energy consumption models are available or revert before ship @@ -178,17 +180,6 @@ void addDvfsStats(std::shared_ptr p) { path, NS_TO_MS, adpCfgs)); std::vector cfgs; - cfgs.push_back({"TPU", { - std::make_pair("1119MHz", "1119000"), - std::make_pair("1066MHz", "1066000"), - std::make_pair("967MHz", "967000"), - std::make_pair("845MHz", "845000"), - std::make_pair("712MHz", "712000"), - std::make_pair("627MHz", "627000"), - std::make_pair("455MHz", "455000"), - std::make_pair("226MHz", "226000"), - }}); - cfgs.push_back({"AUR", { std::make_pair("1065MHz", "1065000"), std::make_pair("861MHz", "861000"), @@ -201,6 +192,20 @@ void addDvfsStats(std::shared_ptr p) { p->addStateResidencyDataProvider(std::make_unique( path, NS_TO_MS, cfgs)); + + // TPU DVFS + const int TICK_TO_MS = 100; + std::vector freqs = { + "1119000", + "1066000", + "845000", + "712000", + "627000", + "455000", + "226000" + }; + p->addStateResidencyDataProvider(std::make_unique( + "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage", freqs, TICK_TO_MS)); } void addSoC(std::shared_ptr p) {