summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java3
-rw-r--r--apex/jobscheduler/service/java/com/android/server/tare/Scribe.java13
2 files changed, 13 insertions, 3 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
index da5a0c0e1e3f..2b8272208c3e 100644
--- a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
+++ b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
@@ -783,6 +783,9 @@ public class InternalResourceService extends SystemService {
// Reset the consumption limit since several factors may have changed.
mScribe.setConsumptionLimitLocked(
mCompleteEconomicPolicy.getInitialSatiatedConsumptionLimit());
+ } else {
+ // Adjust the supply in case battery level changed while the device was off.
+ adjustCreditSupplyLocked(true);
}
}
scheduleUnusedWealthReclamationLocked();
diff --git a/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java b/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java
index ed915cd88ebe..2cae83f4aad5 100644
--- a/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java
+++ b/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java
@@ -19,6 +19,7 @@ package com.android.server.tare;
import static android.text.format.DateUtils.HOUR_IN_MILLIS;
import static com.android.server.tare.TareUtils.appToString;
+import static com.android.server.tare.TareUtils.cakeToString;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -136,9 +137,15 @@ public class Scribe {
@GuardedBy("mIrs.getLock()")
void adjustRemainingConsumableCakesLocked(long delta) {
- if (delta != 0) {
- // No point doing any work if the change is 0.
- mRemainingConsumableCakes += delta;
+ final long staleCakes = mRemainingConsumableCakes;
+ mRemainingConsumableCakes += delta;
+ if (mRemainingConsumableCakes < 0) {
+ Slog.w(TAG, "Overdrew consumable cakes by " + cakeToString(-mRemainingConsumableCakes));
+ // A negative value would interfere with allowing free actions, so set the minimum as 0.
+ mRemainingConsumableCakes = 0;
+ }
+ if (mRemainingConsumableCakes != staleCakes) {
+ // No point doing any work if there was no functional change.
postWrite();
}
}