powerstats: Use unique_ptr am: 6b4c8b4887

Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101/+/13906382

Change-Id: I95d3000b4d6fd0d46fd6412bc4395ce6221e783b
This commit is contained in:
Benjamin Schwartz 2021-03-18 22:04:51 +00:00 committed by Automerger Merge Worker
commit ad7433593a

View file

@ -58,7 +58,7 @@ void addAoC(std::shared_ptr<PowerStats> p) {
}; };
std::vector<std::pair<std::string, std::string>> coreStates = { std::vector<std::pair<std::string, std::string>> coreStates = {
{"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}}; {"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}};
p->addStateResidencyDataProvider(std::make_shared<AocStateResidencyDataProvider>(coreIds, p->addStateResidencyDataProvider(std::make_unique<AocStateResidencyDataProvider>(coreIds,
coreStates)); coreStates));
// Add AoC voltage stats // Add AoC voltage stats
@ -70,7 +70,7 @@ void addAoC(std::shared_ptr<PowerStats> p) {
{"UUD", "ultra_underdrive"}, {"UUD", "ultra_underdrive"},
{"UD", "underdrive"}}; {"UD", "underdrive"}};
p->addStateResidencyDataProvider( p->addStateResidencyDataProvider(
std::make_shared<AocStateResidencyDataProvider>(voltageIds, voltageStates)); std::make_unique<AocStateResidencyDataProvider>(voltageIds, voltageStates));
// Add AoC monitor mode // Add AoC monitor mode
std::vector<std::pair<std::string, std::string>> monitorIds = { std::vector<std::pair<std::string, std::string>> monitorIds = {
@ -80,7 +80,7 @@ void addAoC(std::shared_ptr<PowerStats> p) {
{"MON", "mode"}, {"MON", "mode"},
}; };
p->addStateResidencyDataProvider( p->addStateResidencyDataProvider(
std::make_shared<AocStateResidencyDataProvider>(monitorIds, monitorStates)); std::make_unique<AocStateResidencyDataProvider>(monitorIds, monitorStates));
} }
void addDvfsStats(std::shared_ptr<PowerStats> p) { void addDvfsStats(std::shared_ptr<PowerStats> p) {
@ -172,7 +172,7 @@ void addDvfsStats(std::shared_ptr<PowerStats> p) {
std::make_pair("1066MHz", "1066000000"), std::make_pair("1066MHz", "1066000000"),
}}); }});
p->addStateResidencyDataProvider(std::make_shared<DvfsStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<DvfsStateResidencyDataProvider>(
"/sys/devices/platform/acpm_stats/fvp_stats", NS_TO_MS, cfgs)); "/sys/devices/platform/acpm_stats/fvp_stats", NS_TO_MS, cfgs));
} }
@ -240,10 +240,8 @@ void addSoC(std::shared_ptr<PowerStats> p) {
cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, slcReqStateHeaders), cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, slcReqStateHeaders),
"SLC-REQ", "SLC_REQ:"); "SLC-REQ", "SLC_REQ:");
auto socSdp = std::make_shared<GenericStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
"/sys/devices/platform/acpm_stats/soc_stats", cfgs); "/sys/devices/platform/acpm_stats/soc_stats", cfgs));
p->addStateResidencyDataProvider(socSdp);
} }
void setEnergyMeter(std::shared_ptr<PowerStats> p) { void setEnergyMeter(std::shared_ptr<PowerStats> p) {
@ -266,11 +264,9 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
"HBM: 1440x3040@60", "HBM: 1440x3040@60",
"HBM: 1440x3040@90"}; "HBM: 1440x3040@90"};
auto displaySdp = p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
std::make_shared<DisplayStateResidencyDataProvider>("Display",
"/sys/class/backlight/panel0-backlight/state", "/sys/class/backlight/panel0-backlight/state",
states); states));
p->addStateResidencyDataProvider(displaySdp);
// Add display energy consumer // Add display energy consumer
/* /*
@ -278,13 +274,11 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
* and include proper coefficients for display states. Must account for ALL devices built * and include proper coefficients for display states. Must account for ALL devices built
* using this source. * using this source.
*/ */
auto displayConsumer = PowerStatsEnergyConsumer::createMeterAndEntityConsumer(p, p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndEntityConsumer(p,
EnergyConsumerType::DISPLAY, "display", {"PPVAR_VSYS_PWR_DISP"}, "Display", EnergyConsumerType::DISPLAY, "display", {"PPVAR_VSYS_PWR_DISP"}, "Display",
{{"LP: 1440x3040@30", 1}, {{"LP: 1440x3040@30", 1},
{"On: 1440x3040@60", 2}, {"On: 1440x3040@60", 2},
{"On: 1440x3040@90", 3}}); {"On: 1440x3040@90", 3}}));
p->addEnergyConsumer(displayConsumer);
} }
void addCPUclusters(std::shared_ptr<PowerStats> p) { void addCPUclusters(std::shared_ptr<PowerStats> p) {
@ -314,10 +308,8 @@ void addCPUclusters(std::shared_ptr<PowerStats> p) {
name, name); name, name);
} }
auto cpuSdp = std::make_shared<GenericStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
"/sys/devices/platform/acpm_stats/core_stats", cfgs); "/sys/devices/platform/acpm_stats/core_stats", cfgs));
p->addStateResidencyDataProvider(cpuSdp);
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p, p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
EnergyConsumerType::CPU_CLUSTER, "CPUCL0", {"S4M_VDD_CPUCL0"})); EnergyConsumerType::CPU_CLUSTER, "CPUCL0", {"S4M_VDD_CPUCL0"}));
@ -356,12 +348,10 @@ void addGPU(std::shared_ptr<PowerStats> p) {
{"670000", 50}}; {"670000", 50}};
} }
auto gpuConsumer = PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p, p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D"}, EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D"},
{{UID_TIME_IN_STATE, "/sys/devices/platform/1c500000.mali/uid_time_in_state"}}, {{UID_TIME_IN_STATE, "/sys/devices/platform/1c500000.mali/uid_time_in_state"}},
stateCoeffs); stateCoeffs));
p->addEnergyConsumer(gpuConsumer);
} }
void addMobileRadio(std::shared_ptr<PowerStats> p) void addMobileRadio(std::shared_ptr<PowerStats> p)
@ -390,7 +380,7 @@ void addMobileRadio(std::shared_ptr<PowerStats> p)
cfgs.emplace_back(generateGenericStateResidencyConfigs(powerStateConfig, powerStateHeaders), cfgs.emplace_back(generateGenericStateResidencyConfigs(powerStateConfig, powerStateHeaders),
"MODEM", ""); "MODEM", "");
p->addStateResidencyDataProvider(std::make_shared<GenericStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
"/sys/devices/platform/cpif/modem/power_stats", cfgs)); "/sys/devices/platform/cpif/modem/power_stats", cfgs));
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p, p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
@ -422,10 +412,8 @@ void addNFC(std::shared_ptr<PowerStats> p) {
cfgs.emplace_back(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders), cfgs.emplace_back(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders),
"NFC", "NFC subsystem"); "NFC", "NFC subsystem");
auto nfcSdp = std::make_shared<GenericStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
"/sys/devices/platform/10960000.hsi2c/i2c-3/3-0008/power_stats", cfgs); "/sys/devices/platform/10960000.hsi2c/i2c-3/3-0008/power_stats", cfgs));
p->addStateResidencyDataProvider(nfcSdp);
} }
void addPCIe(std::shared_ptr<PowerStats> p) { void addPCIe(std::shared_ptr<PowerStats> p) {
@ -448,18 +436,18 @@ void addPCIe(std::shared_ptr<PowerStats> p) {
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "PCIe-Modem", {generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "PCIe-Modem",
"Version: 1"} "Version: 1"}
}; };
auto pcieModemSdp = std::make_shared<GenericStateResidencyDataProvider>(
"/sys/devices/platform/11920000.pcie/power_stats", pcieModemCfgs); p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
p->addStateResidencyDataProvider(pcieModemSdp); "/sys/devices/platform/11920000.pcie/power_stats", pcieModemCfgs));
// Add PCIe - WiFi // Add PCIe - WiFi
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieWifiCfgs = { const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieWifiCfgs = {
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), {generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders),
"PCIe-WiFi", "Version: 1"} "PCIe-WiFi", "Version: 1"}
}; };
auto pcieWifiSdp = std::make_shared<GenericStateResidencyDataProvider>(
"/sys/devices/platform/14520000.pcie/power_stats", pcieWifiCfgs); p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
p->addStateResidencyDataProvider(pcieWifiSdp); "/sys/devices/platform/14520000.pcie/power_stats", pcieWifiCfgs));
} }
void addWifi(std::shared_ptr<PowerStats> p) { void addWifi(std::shared_ptr<PowerStats> p) {
@ -503,13 +491,12 @@ void addWifi(std::shared_ptr<PowerStats> p) {
"WIFI-PCIE"} "WIFI-PCIE"}
}; };
auto wifiSdp = std::make_shared<GenericStateResidencyDataProvider>("/sys/wifi/power_stats", p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>("/sys/wifi/power_stats",
cfgs); cfgs));
p->addStateResidencyDataProvider(wifiSdp);
} }
void addUfs(std::shared_ptr<PowerStats> p) { void addUfs(std::shared_ptr<PowerStats> p) {
p->addStateResidencyDataProvider(std::make_shared<UfsStateResidencyDataProvider>("/sys/bus/platform/devices/14700000.ufs/ufs_stats/")); p->addStateResidencyDataProvider(std::make_unique<UfsStateResidencyDataProvider>("/sys/bus/platform/devices/14700000.ufs/ufs_stats/"));
} }
/** /**
@ -519,13 +506,14 @@ void addUfs(std::shared_ptr<PowerStats> p) {
* vendor service register callbacks to provide state residency data for their given pwoer entity. * vendor service register callbacks to provide state residency data for their given pwoer entity.
*/ */
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) { void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
std::shared_ptr<PixelStateResidencyDataProvider> pixelSdp =
ndk::SharedRefBase::make<PixelStateResidencyDataProvider>(); auto pixelSdp = std::make_unique<PixelStateResidencyDataProvider>();
pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}}); pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}});
pixelSdp->start(); pixelSdp->start();
p->addStateResidencyDataProvider(pixelSdp);
p->addStateResidencyDataProvider(std::move(pixelSdp));
} }
int main() { int main() {