summaryrefslogtreecommitdiff
path: root/power-libperfmgr
diff options
context:
space:
mode:
authorWei Wang <wvw@google.com>2019-05-23 10:17:53 -0700
committerWei Wang <wvw@google.com>2019-05-23 11:41:31 -0700
commita317e589aebd6f5076d80e5bd99fe3b93e7d3423 (patch)
treeb0cab1e55a01080812173c8a2b4f5f42ec3fc31d /power-libperfmgr
parent67c728531893127e052a67675fc2846eb97ab5fd (diff)
downloadpixel-a317e589aebd6f5076d80e5bd99fe3b93e7d3423.tar.gz
Remove CPU0 governor check
This leads to additional latency in processing hints. Also some tests have small cores shut off. Now for testing need to skipping powerhint: setprop vendor.powerhal.init 0 setprop ctl.restart vendor.power-hal-1-3 Test: Build Bug: 129495482 Fixes: 133425880 Change-Id: I8ede2f2ee70a3df4f1b353ee9c07ab10752973e2
Diffstat (limited to 'power-libperfmgr')
-rw-r--r--power-libperfmgr/Power.cpp28
-rw-r--r--power-libperfmgr/Power.h11
-rw-r--r--power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc4
3 files changed, 16 insertions, 27 deletions
diff --git a/power-libperfmgr/Power.cpp b/power-libperfmgr/Power.cpp
index 242a3bcc..aca64ca4 100644
--- a/power-libperfmgr/Power.cpp
+++ b/power-libperfmgr/Power.cpp
@@ -44,6 +44,12 @@ using ::android::hardware::Void;
using ::android::hardware::power::V1_0::Feature;
using ::android::hardware::power::V1_0::Status;
+constexpr char kPowerHalStateProp[] = "vendor.powerhal.state";
+constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio";
+constexpr char kPowerHalInitProp[] = "vendor.powerhal.init";
+constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering";
+constexpr char kPowerHalConfigPath[] = "/vendor/etc/powerhint.json";
+
static const std::map<enum CameraStreamingMode, std::string> kCamStreamingHint = {
{CAMERA_STREAMING_OFF, "CAMERA_STREAMING_OFF"},
{CAMERA_STREAMING, "CAMERA_STREAMING"},
@@ -108,6 +114,7 @@ Power::Power()
}
// Now start to take powerhint
mReady.store(true);
+ ALOGI("PowerHAL ready to process hints");
});
mInitThread.detach();
}
@@ -118,7 +125,7 @@ Return<void> Power::setInteractive(bool /* interactive */) {
}
Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) {
- if (!isSupportedGovernor() || !mReady) {
+ if (!mReady) {
return Void();
}
ATRACE_INT(android::hardware::power::V1_0::toString(hint).c_str(), data);
@@ -213,21 +220,6 @@ Return<void> Power::getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl
return Void();
}
-bool Power::isSupportedGovernor() {
- std::string buf;
- if (android::base::ReadFileToString("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor",
- &buf)) {
- buf = android::base::Trim(buf);
- }
- // Only support EAS 1.2, legacy EAS
- if (buf == "schedutil" || buf == "sched") {
- return true;
- } else {
- LOG(ERROR) << "Governor not supported by powerHAL, skipping";
- return false;
- }
-}
-
Return<void> Power::powerHintAsync(PowerHint_1_0 hint, int32_t data) {
// just call the normal power hint in this oneway function
return powerHint(hint, data);
@@ -235,7 +227,7 @@ Return<void> Power::powerHintAsync(PowerHint_1_0 hint, int32_t data) {
// Methods from ::android::hardware::power::V1_2::IPower follow.
Return<void> Power::powerHintAsync_1_2(PowerHint_1_2 hint, int32_t data) {
- if (!isSupportedGovernor() || !mReady) {
+ if (!mReady) {
return Void();
}
@@ -332,7 +324,7 @@ Return<void> Power::powerHintAsync_1_2(PowerHint_1_2 hint, int32_t data) {
// Methods from ::android::hardware::power::V1_3::IPower follow.
Return<void> Power::powerHintAsync_1_3(PowerHint_1_3 hint, int32_t data) {
- if (!isSupportedGovernor() || !mReady) {
+ if (!mReady) {
return Void();
}
diff --git a/power-libperfmgr/Power.h b/power-libperfmgr/Power.h
index 4b055bc2..b43fecd7 100644
--- a/power-libperfmgr/Power.h
+++ b/power-libperfmgr/Power.h
@@ -45,13 +45,8 @@ using PowerHint_1_2 = ::android::hardware::power::V1_2::PowerHint;
using PowerHint_1_3 = ::android::hardware::power::V1_3::PowerHint;
using ::android::perfmgr::HintManager;
-constexpr char kPowerHalStateProp[] = "vendor.powerhal.state";
-constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio";
-constexpr char kPowerHalInitProp[] = "vendor.powerhal.init";
-constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering";
-constexpr char kPowerHalConfigPath[] = "/vendor/etc/powerhint.json";
-
-struct Power : public IPower {
+class Power : public IPower {
+ public:
// Methods from ::android::hardware::power::V1_0::IPower follow.
Power();
@@ -75,8 +70,6 @@ struct Power : public IPower {
Return<void> debug(const hidl_handle &fd, const hidl_vec<hidl_string> &args) override;
private:
- static bool isSupportedGovernor();
-
std::shared_ptr<HintManager> mHintManager;
std::unique_ptr<InteractionHandler> mInteractionHandler;
std::atomic<bool> mVRModeOn;
diff --git a/power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc b/power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc
index fcfc5ee4..fa005870 100644
--- a/power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc
+++ b/power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc
@@ -2,6 +2,10 @@ service vendor.power-hal-1-3 /vendor/bin/hw/android.hardware.power@1.3-service.p
class hal
user root
group system
+ interface android.hardware.power@1.0::IPower default
+ interface android.hardware.power@1.1::IPower default
+ interface android.hardware.power@1.2::IPower default
+ interface android.hardware.power@1.3::IPower default
# restart powerHAL when framework died
on property:init.svc.zygote=restarting && property:vendor.powerhal.state=*