Skip to content
Snippets Groups Projects
Commit 73b143c6 authored by Matt Buckley's avatar Matt Buckley
Browse files

Send cached target duration when creating sessions

This fixes an issue where the default target duration was being sent
when re-creating sessions, after the true target duration was already
known. This caused the wrong value in PowerHAL, and no corrective update
was sent because the cached value never changed.

Bug: 301806277
Test: hwuitest
Change-Id: I80d90e855fce92264d8341aad78b19dc547b65f4
Merged-In: I80d90e855fce92264d8341aad78b19dc547b65f4
parent 56916c44
No related branches found
No related tags found
No related merge requests found
......@@ -72,6 +72,7 @@ void HintSessionWrapper::destroy() {
mSessionValid = true;
mHintSession = nullptr;
}
mResetsSinceLastReport = 0;
}
bool HintSessionWrapper::init() {
......@@ -111,10 +112,10 @@ bool HintSessionWrapper::init() {
// Use a placeholder target value to initialize,
// this will always be replaced elsewhere before it gets used
int64_t defaultTargetDurationNanos = 16666667;
int64_t targetDurationNanos =
mLastTargetWorkDuration == 0 ? kDefaultTargetDuration : mLastTargetWorkDuration;
mHintSessionFuture = CommonPool::async([=, this, tids = std::move(tids)] {
return mBinding->createSession(manager, tids.data(), tids.size(),
defaultTargetDurationNanos);
return mBinding->createSession(manager, tids.data(), tids.size(), targetDurationNanos);
});
return false;
}
......
......@@ -65,6 +65,7 @@ private:
static constexpr nsecs_t kResetHintTimeout = 100_ms;
static constexpr int64_t kSanityCheckLowerBound = 100_us;
static constexpr int64_t kSanityCheckUpperBound = 10_s;
static constexpr int64_t kDefaultTargetDuration = 16666667;
// Allows easier stub when testing
class HintSessionBinding {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment