Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f174f4b authored by Wei Wang's avatar Wei Wang Committed by jimmyshiu
Browse files

Send the hint immediately when actual > target



Send the hint immediately when actual duration is longer than target
duration.

Test: boot
Bug: 198379880
Signed-off-by: default avatarWei Wang <wvw@google.com>
Change-Id: I6c80940b27d65a1e34e40f61eef3f81990957711
parent 43f42ced
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -184,13 +184,13 @@ int APerformanceHintSession::reportActualWorkDuration(int64_t actualDurationNano
    mTimestampsNanos.push_back(now);

    /**
     * Use current sample to determine the rate limit. We can pick a shorter rate limit
     * if any sample underperformed, however, it could be the lower level system is slow
     * to react. So here we explicitly choose the rate limit with the latest sample.
     * Cache the hint if the hint is not overtime and the mLastUpdateTimestamp is
     * still in the mPreferredRateNanos duration.
     */
    int64_t rateLimit = actualDurationNanos > mTargetDurationNanos ? mPreferredRateNanos
                                                                   : 10 * mPreferredRateNanos;
    if (now - mLastUpdateTimestamp <= rateLimit) return 0;
    if (actualDurationNanos < mTargetDurationNanos &&
        now - mLastUpdateTimestamp <= mPreferredRateNanos) {
        return 0;
    }

    binder::Status ret =
            mHintSession->reportActualWorkDuration(mActualDurationsNanos, mTimestampsNanos);