diff options
author | Wei Wang <wvw@google.com> | 2019-05-23 10:17:53 -0700 |
---|---|---|
committer | Wei Wang <wvw@google.com> | 2019-05-23 11:41:31 -0700 |
commit | a317e589aebd6f5076d80e5bd99fe3b93e7d3423 (patch) | |
tree | b0cab1e55a01080812173c8a2b4f5f42ec3fc31d /power-libperfmgr | |
parent | 67c728531893127e052a67675fc2846eb97ab5fd (diff) | |
download | pixel-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.cpp | 28 | ||||
-rw-r--r-- | power-libperfmgr/Power.h | 11 | ||||
-rw-r--r-- | power-libperfmgr/android.hardware.power@1.3-service.pixel-libperfmgr.rc | 4 |
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=* |