summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--power-libperfmgr/aidl/PowerHintSession.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/power-libperfmgr/aidl/PowerHintSession.cpp b/power-libperfmgr/aidl/PowerHintSession.cpp
index ee9093e7..fd119c72 100644
--- a/power-libperfmgr/aidl/PowerHintSession.cpp
+++ b/power-libperfmgr/aidl/PowerHintSession.cpp
@@ -46,6 +46,8 @@ using ::android::perfmgr::HintManager;
using std::chrono::duration_cast;
using std::chrono::nanoseconds;
+using std::operator""ms;
+
namespace {
static std::atomic<int64_t> sSessionIDCounter{0};
@@ -176,10 +178,11 @@ void PowerHintSession::updatePidControlVariable(int pidControlVariable, bool upd
mDescriptor->pidControlVariable = pidControlVariable;
if (updateVote) {
auto adpfConfig = HintManager::GetInstance()->GetAdpfProfile();
- mPSManager->voteSet(
- mSessionId, AdpfHintType::ADPF_VOTE_DEFAULT, pidControlVariable, kUclampMax,
- std::chrono::steady_clock::now(),
- duration_cast<nanoseconds>(mDescriptor->targetNs * adpfConfig->mStaleTimeFactor));
+ mPSManager->voteSet(mSessionId, AdpfHintType::ADPF_VOTE_DEFAULT, pidControlVariable,
+ kUclampMax, std::chrono::steady_clock::now(),
+ std::max(duration_cast<nanoseconds>(mDescriptor->targetNs *
+ adpfConfig->mStaleTimeFactor),
+ nanoseconds(adpfConfig->mReportingRateLimitNs) * 2));
}
ATRACE_INT(mAppDescriptorTrace.trace_min.c_str(), pidControlVariable);
}