diff --git a/aidl/power-libperfmgr/PowerHintSession.cpp b/aidl/power-libperfmgr/PowerHintSession.cpp index deb5ebd..c562b06 100644 --- a/aidl/power-libperfmgr/PowerHintSession.cpp +++ b/aidl/power-libperfmgr/PowerHintSession.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -183,7 +184,15 @@ std::string PowerHintSession::getIdString() const { return idstr; } +bool PowerHintSession::isAppSession() { + // Check if uid is in range reserved for applications + return mDescriptor->uid >= AID_APP_START; +} + void PowerHintSession::updateUniveralBoostMode() { + if (!isAppSession()) { + return; + } if (ATRACE_ENABLED()) { const std::string tag = StringPrintf("%s:updateUniveralBoostMode()", getIdString().c_str()); ATRACE_BEGIN(tag.c_str()); diff --git a/aidl/power-libperfmgr/PowerHintSession.h b/aidl/power-libperfmgr/PowerHintSession.h index bd5882c..4b28457 100644 --- a/aidl/power-libperfmgr/PowerHintSession.h +++ b/aidl/power-libperfmgr/PowerHintSession.h @@ -87,6 +87,8 @@ class PowerHintSession : public BnPowerHintSession { const std::vector &actualDurations) override; bool isActive(); bool isStale(); + // Is this hint session for a user application + bool isAppSession(); const std::vector &getTidList() const; int restoreUclamp(); diff --git a/aidl/power-libperfmgr/PowerSessionManager.cpp b/aidl/power-libperfmgr/PowerSessionManager.cpp index 7877a6a..be03e44 100644 --- a/aidl/power-libperfmgr/PowerSessionManager.cpp +++ b/aidl/power-libperfmgr/PowerSessionManager.cpp @@ -91,12 +91,12 @@ void PowerSessionManager::removePowerSession(PowerHintSession *session) { mSessions.erase(session); } -std::optional PowerSessionManager::isAnySessionActive() { +std::optional PowerSessionManager::isAnyAppSessionActive() { std::lock_guard guard(mLock); bool active = false; for (PowerHintSession *s : mSessions) { // session active and not stale is actually active. - if (s->isActive() && !s->isStale()) { + if (s->isActive() && !s->isStale() && s->isAppSession()) { active = true; break; } @@ -111,7 +111,7 @@ std::optional PowerSessionManager::isAnySessionActive() { } void PowerSessionManager::handleMessage(const Message &) { - auto active = isAnySessionActive(); + auto active = isAnyAppSessionActive(); if (!active.has_value()) { return; } diff --git a/aidl/power-libperfmgr/PowerSessionManager.h b/aidl/power-libperfmgr/PowerSessionManager.h index 0b68a0b..9d3a7de 100644 --- a/aidl/power-libperfmgr/PowerSessionManager.h +++ b/aidl/power-libperfmgr/PowerSessionManager.h @@ -59,7 +59,7 @@ class PowerSessionManager : public MessageHandler { } private: - std::optional isAnySessionActive(); + std::optional isAnyAppSessionActive(); void disableSystemTopAppBoost(); void enableSystemTopAppBoost(); const std::string kDisableBoostHintName;