diff --git a/apex/jobscheduler/service/java/com/android/server/tare/Agent.java b/apex/jobscheduler/service/java/com/android/server/tare/Agent.java index c0a81487fe62f..f4faec85002ad 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/Agent.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/Agent.java @@ -28,8 +28,8 @@ import static com.android.server.tare.EconomicPolicy.TYPE_REWARD; import static com.android.server.tare.EconomicPolicy.eventToString; import static com.android.server.tare.EconomicPolicy.getEventType; import static com.android.server.tare.TareUtils.appToString; +import static com.android.server.tare.TareUtils.cakeToString; import static com.android.server.tare.TareUtils.getCurrentTimeMillis; -import static com.android.server.tare.TareUtils.narcToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -161,7 +161,7 @@ class Agent { @GuardedBy("mLock") private boolean isAffordableLocked(long balance, long price, long ctp) { - return balance >= price && mScribe.getRemainingConsumableNarcsLocked() >= ctp; + return balance >= price && mScribe.getRemainingConsumableCakesLocked() >= ctp; } @GuardedBy("mLock") @@ -464,13 +464,13 @@ class Agent { + eventToString(transaction.eventId) + (transaction.tag == null ? "" : ":" + transaction.tag) + " for " + appToString(userId, pkgName) - + " by " + narcToString(transaction.delta - newDelta)); + + " by " + cakeToString(transaction.delta - newDelta)); transaction = new Ledger.Transaction( transaction.startTimeMs, transaction.endTimeMs, transaction.eventId, transaction.tag, newDelta, transaction.ctp); } ledger.recordTransaction(transaction); - mScribe.adjustRemainingConsumableNarcsLocked(-transaction.ctp); + mScribe.adjustRemainingConsumableCakesLocked(-transaction.ctp); if (transaction.delta != 0 && notifyOnAffordabilityChange) { final ArraySet actionAffordabilityNotes = mActionAffordabilityNotes.get(userId, pkgName); @@ -724,7 +724,7 @@ class Agent { private void reclaimAssetsLocked(final int userId, @NonNull final String pkgName) { final Ledger ledger = mScribe.getLedgerLocked(userId, pkgName); if (ledger.getCurrentBalance() != 0) { - mScribe.adjustRemainingConsumableNarcsLocked(-ledger.getCurrentBalance()); + mScribe.adjustRemainingConsumableCakesLocked(-ledger.getCurrentBalance()); } mScribe.discardLedgerLocked(userId, pkgName); mCurrentOngoingEvents.delete(userId, pkgName); @@ -872,7 +872,7 @@ class Agent { return; } mTrendCalculator.reset(getBalanceLocked(userId, pkgName), - mScribe.getRemainingConsumableNarcsLocked(), + mScribe.getRemainingConsumableCakesLocked(), mActionAffordabilityNotes.get(userId, pkgName)); ongoingEvents.forEach(mTrendCalculator); final long lowerTimeMs = mTrendCalculator.getTimeToCrossLowerThresholdMs(); @@ -1260,11 +1260,11 @@ class Agent { pw.print(" runtime="); TimeUtils.formatDuration(nowElapsed - ongoingEvent.startTimeElapsed, pw); pw.print(" delta/sec="); - pw.print(narcToString(ongoingEvent.getDeltaPerSec())); + pw.print(cakeToString(ongoingEvent.getDeltaPerSec())); final long ctp = ongoingEvent.getCtpPerSec(); if (ctp != 0) { pw.print(" ctp/sec="); - pw.print(narcToString(ongoingEvent.getCtpPerSec())); + pw.print(cakeToString(ongoingEvent.getCtpPerSec())); } pw.print(" refCount="); pw.print(ongoingEvent.refCount); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java index 71e00cf053e28..c2e81882eed27 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java @@ -97,8 +97,8 @@ import static com.android.server.tare.Modifier.COST_MODIFIER_CHARGING; import static com.android.server.tare.Modifier.COST_MODIFIER_DEVICE_IDLE; import static com.android.server.tare.Modifier.COST_MODIFIER_POWER_SAVE_MODE; import static com.android.server.tare.Modifier.COST_MODIFIER_PROCESS_STATE; -import static com.android.server.tare.TareUtils.arcToNarc; -import static com.android.server.tare.TareUtils.narcToString; +import static com.android.server.tare.TareUtils.arcToCake; +import static com.android.server.tare.TareUtils.cakeToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -219,143 +219,143 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy { Slog.e(TAG, "Global setting key incorrect: ", e); } - mMinSatiatedBalanceExempted = arcToNarc(mParser.getInt(KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED, + mMinSatiatedBalanceExempted = arcToCake(mParser.getInt(KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED, DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED)); - mMinSatiatedBalanceOther = arcToNarc(mParser.getInt(KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP, + mMinSatiatedBalanceOther = arcToCake(mParser.getInt(KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP, DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP)); - mMaxSatiatedBalance = arcToNarc(mParser.getInt(KEY_AM_MAX_SATIATED_BALANCE, + mMaxSatiatedBalance = arcToCake(mParser.getInt(KEY_AM_MAX_SATIATED_BALANCE, DEFAULT_AM_MAX_SATIATED_BALANCE)); - mInitialSatiatedConsumptionLimit = arcToNarc(mParser.getInt( + mInitialSatiatedConsumptionLimit = arcToCake(mParser.getInt( KEY_AM_INITIAL_CONSUMPTION_LIMIT, DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT)); mHardSatiatedConsumptionLimit = Math.max(mInitialSatiatedConsumptionLimit, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_HARD_CONSUMPTION_LIMIT, DEFAULT_AM_HARD_CONSUMPTION_LIMIT))); - final long exactAllowWhileIdleWakeupBasePrice = arcToNarc( + final long exactAllowWhileIdleWakeupBasePrice = arcToCake( mParser.getInt(KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE)); mActions.put(ACTION_ALARM_WAKEUP_EXACT_ALLOW_WHILE_IDLE, new Action(ACTION_ALARM_WAKEUP_EXACT_ALLOW_WHILE_IDLE, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP)), exactAllowWhileIdleWakeupBasePrice)); mActions.put(ACTION_ALARM_WAKEUP_EXACT, new Action(ACTION_ALARM_WAKEUP_EXACT, - arcToNarc(mParser.getInt(KEY_AM_ACTION_ALARM_EXACT_WAKEUP_CTP, + arcToCake(mParser.getInt(KEY_AM_ACTION_ALARM_EXACT_WAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_CTP)), - arcToNarc(mParser.getInt(KEY_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, + arcToCake(mParser.getInt(KEY_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE)))); final long inexactAllowWhileIdleWakeupBasePrice = - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE)); mActions.put(ACTION_ALARM_WAKEUP_INEXACT_ALLOW_WHILE_IDLE, new Action(ACTION_ALARM_WAKEUP_INEXACT_ALLOW_WHILE_IDLE, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP)), inexactAllowWhileIdleWakeupBasePrice)); mActions.put(ACTION_ALARM_WAKEUP_INEXACT, new Action(ACTION_ALARM_WAKEUP_INEXACT, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE)))); final long exactAllowWhileIdleNonWakeupBasePrice = - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE)); mActions.put(ACTION_ALARM_NONWAKEUP_EXACT_ALLOW_WHILE_IDLE, new Action(ACTION_ALARM_NONWAKEUP_EXACT_ALLOW_WHILE_IDLE, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP)), exactAllowWhileIdleNonWakeupBasePrice)); mActions.put(ACTION_ALARM_NONWAKEUP_EXACT, new Action(ACTION_ALARM_NONWAKEUP_EXACT, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_EXACT_NONWAKEUP_BASE_PRICE)))); final long inexactAllowWhileIdleNonWakeupBasePrice = - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE)); mActions.put(ACTION_ALARM_NONWAKEUP_INEXACT_ALLOW_WHILE_IDLE, new Action(ACTION_ALARM_NONWAKEUP_INEXACT_ALLOW_WHILE_IDLE, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP)), inexactAllowWhileIdleNonWakeupBasePrice)); mActions.put(ACTION_ALARM_NONWAKEUP_INEXACT, new Action(ACTION_ALARM_NONWAKEUP_INEXACT, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP, DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE)))); mActions.put(ACTION_ALARM_CLOCK, new Action(ACTION_ALARM_CLOCK, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALARMCLOCK_CTP, DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_CTP)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE, DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE)))); mRewards.put(REWARD_TOP_ACTIVITY, new Reward(REWARD_TOP_ACTIVITY, - arcToNarc(mParser.getInt(KEY_AM_REWARD_TOP_ACTIVITY_INSTANT, + arcToCake(mParser.getInt(KEY_AM_REWARD_TOP_ACTIVITY_INSTANT, DEFAULT_AM_REWARD_TOP_ACTIVITY_INSTANT)), - (long) (arcToNarc(1) * mParser.getFloat(KEY_AM_REWARD_TOP_ACTIVITY_ONGOING, + (long) (arcToCake(1) * mParser.getFloat(KEY_AM_REWARD_TOP_ACTIVITY_ONGOING, DEFAULT_AM_REWARD_TOP_ACTIVITY_ONGOING)), - arcToNarc(mParser.getInt(KEY_AM_REWARD_TOP_ACTIVITY_MAX, + arcToCake(mParser.getInt(KEY_AM_REWARD_TOP_ACTIVITY_MAX, DEFAULT_AM_REWARD_TOP_ACTIVITY_MAX)))); mRewards.put(REWARD_NOTIFICATION_SEEN, new Reward(REWARD_NOTIFICATION_SEEN, - arcToNarc(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_INSTANT, + arcToCake(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_INSTANT, DEFAULT_AM_REWARD_NOTIFICATION_SEEN_INSTANT)), - arcToNarc(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_ONGOING, + arcToCake(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_ONGOING, DEFAULT_AM_REWARD_NOTIFICATION_SEEN_ONGOING)), - arcToNarc(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_MAX, + arcToCake(mParser.getInt(KEY_AM_REWARD_NOTIFICATION_SEEN_MAX, DEFAULT_AM_REWARD_NOTIFICATION_SEEN_MAX)))); mRewards.put(REWARD_NOTIFICATION_INTERACTION, new Reward(REWARD_NOTIFICATION_INTERACTION, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT, DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING, DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX, DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_MAX)))); mRewards.put(REWARD_WIDGET_INTERACTION, new Reward(REWARD_WIDGET_INTERACTION, - arcToNarc(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_INSTANT, + arcToCake(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_INSTANT, DEFAULT_AM_REWARD_WIDGET_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_ONGOING, + arcToCake(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_ONGOING, DEFAULT_AM_REWARD_WIDGET_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_MAX, + arcToCake(mParser.getInt(KEY_AM_REWARD_WIDGET_INTERACTION_MAX, DEFAULT_AM_REWARD_WIDGET_INTERACTION_MAX)))); mRewards.put(REWARD_OTHER_USER_INTERACTION, new Reward(REWARD_OTHER_USER_INTERACTION, - arcToNarc(mParser.getInt(KEY_AM_REWARD_OTHER_USER_INTERACTION_INSTANT, + arcToCake(mParser.getInt(KEY_AM_REWARD_OTHER_USER_INTERACTION_INSTANT, DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_REWARD_OTHER_USER_INTERACTION_ONGOING, DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX, DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_MAX)))); } @@ -364,14 +364,14 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy { void dump(IndentingPrintWriter pw) { pw.println("Min satiated balances:"); pw.increaseIndent(); - pw.print("Exempted", narcToString(mMinSatiatedBalanceExempted)).println(); - pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println(); + pw.print("Exempted", cakeToString(mMinSatiatedBalanceExempted)).println(); + pw.print("Other", cakeToString(mMinSatiatedBalanceOther)).println(); pw.decreaseIndent(); - pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println(); + pw.print("Max satiated balance", cakeToString(mMaxSatiatedBalance)).println(); pw.print("Consumption limits: ["); - pw.print(narcToString(mInitialSatiatedConsumptionLimit)); + pw.print(cakeToString(mInitialSatiatedConsumptionLimit)); pw.print(", "); - pw.print(narcToString(mHardSatiatedConsumptionLimit)); + pw.print(cakeToString(mHardSatiatedConsumptionLimit)); pw.println("]"); pw.println(); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/EconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/EconomicPolicy.java index 1e480155f18a1..3a26aae217c21 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/EconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/EconomicPolicy.java @@ -21,7 +21,7 @@ import static com.android.server.tare.Modifier.COST_MODIFIER_DEVICE_IDLE; import static com.android.server.tare.Modifier.COST_MODIFIER_POWER_SAVE_MODE; import static com.android.server.tare.Modifier.COST_MODIFIER_PROCESS_STATE; import static com.android.server.tare.Modifier.NUM_COST_MODIFIERS; -import static com.android.server.tare.TareUtils.narcToString; +import static com.android.server.tare.TareUtils.cakeToString; import android.annotation.CallSuper; import android.annotation.IntDef; @@ -203,7 +203,7 @@ public abstract class EconomicPolicy { abstract long getMaxSatiatedBalance(); /** - * Returns the maximum number of narcs that should be consumed during a full 100% discharge + * Returns the maximum number of cakes that should be consumed during a full 100% discharge * cycle. This is the initial limit. The system may choose to increase the limit over time, * but the increased limit should never exceed the value returned from * {@link #getHardSatiatedConsumptionLimit()}. @@ -211,7 +211,7 @@ public abstract class EconomicPolicy { abstract long getInitialSatiatedConsumptionLimit(); /** - * Returns the maximum number of narcs that should be consumed during a full 100% discharge + * Returns the maximum number of cakes that should be consumed during a full 100% discharge * cycle. This is the hard limit that should never be exceeded. */ abstract long getHardSatiatedConsumptionLimit(); @@ -430,9 +430,9 @@ public abstract class EconomicPolicy { pw.print(actionToString(action.id)); pw.print(": "); pw.print("ctp="); - pw.print(narcToString(action.costToProduce)); + pw.print(cakeToString(action.costToProduce)); pw.print(", basePrice="); - pw.print(narcToString(action.basePrice)); + pw.print(cakeToString(action.basePrice)); pw.println(); } @@ -440,11 +440,11 @@ public abstract class EconomicPolicy { pw.print(rewardToString(reward.id)); pw.print(": "); pw.print("instant="); - pw.print(narcToString(reward.instantReward)); + pw.print(cakeToString(reward.instantReward)); pw.print(", ongoing/sec="); - pw.print(narcToString(reward.ongoingRewardPerSecond)); + pw.print(cakeToString(reward.ongoingRewardPerSecond)); pw.print(", maxDaily="); - pw.print(narcToString(reward.maxDailyReward)); + pw.print(cakeToString(reward.maxDailyReward)); pw.println(); } } 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 c93480700ca7e..ce4604f80f50c 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java @@ -23,8 +23,8 @@ import static android.text.format.DateUtils.HOUR_IN_MILLIS; import static android.text.format.DateUtils.MINUTE_IN_MILLIS; import static com.android.server.tare.TareUtils.appToString; +import static com.android.server.tare.TareUtils.cakeToString; import static com.android.server.tare.TareUtils.getCurrentTimeMillis; -import static com.android.server.tare.TareUtils.narcToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -528,9 +528,9 @@ public class InternalResourceService extends SystemService { void maybePerformQuantitativeEasingLocked() { // We don't need to increase the limit if the device runs out of consumable credits // when the battery is low. - final long remainingConsumableNarcs = mScribe.getRemainingConsumableNarcsLocked(); + final long remainingConsumableCakes = mScribe.getRemainingConsumableCakesLocked(); if (mCurrentBatteryLevel <= QUANTITATIVE_EASING_BATTERY_THRESHOLD - || remainingConsumableNarcs > 0) { + || remainingConsumableCakes > 0) { return; } final long currentConsumptionLimit = mScribe.getSatiatedConsumptionLimitLocked(); @@ -539,8 +539,8 @@ public class InternalResourceService extends SystemService { final long newConsumptionLimit = Math.min(currentConsumptionLimit + shortfall, mCompleteEconomicPolicy.getHardSatiatedConsumptionLimit()); if (newConsumptionLimit != currentConsumptionLimit) { - Slog.i(TAG, "Increasing consumption limit from " + narcToString(currentConsumptionLimit) - + " to " + narcToString(newConsumptionLimit)); + Slog.i(TAG, "Increasing consumption limit from " + cakeToString(currentConsumptionLimit) + + " to " + cakeToString(newConsumptionLimit)); mScribe.setConsumptionLimitLocked(newConsumptionLimit); adjustCreditSupplyLocked(/* allowIncrease */ true); } @@ -562,16 +562,16 @@ public class InternalResourceService extends SystemService { @GuardedBy("mLock") private void adjustCreditSupplyLocked(boolean allowIncrease) { final long newLimit = getConsumptionLimitLocked(); - final long remainingConsumableNarcs = mScribe.getRemainingConsumableNarcsLocked(); - if (remainingConsumableNarcs == newLimit) { + final long remainingConsumableCakes = mScribe.getRemainingConsumableCakesLocked(); + if (remainingConsumableCakes == newLimit) { return; } - if (remainingConsumableNarcs > newLimit) { - mScribe.adjustRemainingConsumableNarcsLocked(newLimit - remainingConsumableNarcs); + if (remainingConsumableCakes > newLimit) { + mScribe.adjustRemainingConsumableCakesLocked(newLimit - remainingConsumableCakes); } else if (allowIncrease) { final double perc = mCurrentBatteryLevel / 100d; - final long shortfall = newLimit - remainingConsumableNarcs; - mScribe.adjustRemainingConsumableNarcsLocked((long) (perc * shortfall)); + final long shortfall = newLimit - remainingConsumableCakes; + mScribe.adjustRemainingConsumableCakesLocked((long) (perc * shortfall)); } mAgent.onCreditSupplyChanged(); } @@ -919,7 +919,7 @@ public class InternalResourceService extends SystemService { + cost.price * (action.ongoingDurationMs / 1000); } return mAgent.getBalanceLocked(userId, pkgName) >= requiredBalance - && mScribe.getRemainingConsumableNarcsLocked() >= requiredBalance; + && mScribe.getRemainingConsumableCakesLocked() >= requiredBalance; } } @@ -947,7 +947,7 @@ public class InternalResourceService extends SystemService { } final long minBalance = Math.min( mAgent.getBalanceLocked(userId, pkgName), - mScribe.getRemainingConsumableNarcsLocked()); + mScribe.getRemainingConsumableCakesLocked()); return minBalance * 1000 / totalCostPerSecond; } } @@ -1103,21 +1103,21 @@ public class InternalResourceService extends SystemService { final long consumptionLimit = getConsumptionLimitLocked(); pw.print("Consumption limit (current/initial-satiated/current-satiated): "); - pw.print(narcToString(consumptionLimit)); + pw.print(cakeToString(consumptionLimit)); pw.print("/"); - pw.print(narcToString(mCompleteEconomicPolicy.getInitialSatiatedConsumptionLimit())); + pw.print(cakeToString(mCompleteEconomicPolicy.getInitialSatiatedConsumptionLimit())); pw.print("/"); - pw.println(narcToString(mScribe.getSatiatedConsumptionLimitLocked())); + pw.println(cakeToString(mScribe.getSatiatedConsumptionLimitLocked())); - final long remainingConsumable = mScribe.getRemainingConsumableNarcsLocked(); + final long remainingConsumable = mScribe.getRemainingConsumableCakesLocked(); pw.print("Goods remaining: "); - pw.print(narcToString(remainingConsumable)); + pw.print(cakeToString(remainingConsumable)); pw.print(" ("); pw.print(String.format("%.2f", 100f * remainingConsumable / consumptionLimit)); pw.println("% of current limit)"); pw.print("Device wealth: "); - pw.println(narcToString(mScribe.getNarcsInCirculationForLoggingLocked())); + pw.println(cakeToString(mScribe.getCakesInCirculationForLoggingLocked())); pw.println(); pw.print("Exempted apps", mExemptedApps); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java index 0eddd2223d237..99b93ce5c22ce 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java @@ -106,8 +106,8 @@ import static com.android.server.tare.Modifier.COST_MODIFIER_CHARGING; import static com.android.server.tare.Modifier.COST_MODIFIER_DEVICE_IDLE; import static com.android.server.tare.Modifier.COST_MODIFIER_POWER_SAVE_MODE; import static com.android.server.tare.Modifier.COST_MODIFIER_PROCESS_STATE; -import static com.android.server.tare.TareUtils.arcToNarc; -import static com.android.server.tare.TareUtils.narcToString; +import static com.android.server.tare.TareUtils.arcToCake; +import static com.android.server.tare.TareUtils.cakeToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -221,116 +221,116 @@ public class JobSchedulerEconomicPolicy extends EconomicPolicy { Slog.e(TAG, "Global setting key incorrect: ", e); } - mMinSatiatedBalanceExempted = arcToNarc( + mMinSatiatedBalanceExempted = arcToCake( mParser.getInt(KEY_JS_MIN_SATIATED_BALANCE_EXEMPTED, DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED)); - mMinSatiatedBalanceOther = arcToNarc( + mMinSatiatedBalanceOther = arcToCake( mParser.getInt(KEY_JS_MIN_SATIATED_BALANCE_OTHER_APP, DEFAULT_JS_MIN_SATIATED_BALANCE_OTHER_APP)); - mMaxSatiatedBalance = arcToNarc(mParser.getInt(KEY_JS_MAX_SATIATED_BALANCE, + mMaxSatiatedBalance = arcToCake(mParser.getInt(KEY_JS_MAX_SATIATED_BALANCE, DEFAULT_JS_MAX_SATIATED_BALANCE)); - mInitialSatiatedConsumptionLimit = arcToNarc(mParser.getInt( + mInitialSatiatedConsumptionLimit = arcToCake(mParser.getInt( KEY_JS_INITIAL_CONSUMPTION_LIMIT, DEFAULT_JS_INITIAL_CONSUMPTION_LIMIT)); mHardSatiatedConsumptionLimit = Math.max(mInitialSatiatedConsumptionLimit, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_HARD_CONSUMPTION_LIMIT, DEFAULT_JS_HARD_CONSUMPTION_LIMIT))); mActions.put(ACTION_JOB_MAX_START, new Action(ACTION_JOB_MAX_START, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MAX_START_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MAX_START_CTP, DEFAULT_JS_ACTION_JOB_MAX_START_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MAX_START_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MAX_START_BASE_PRICE, DEFAULT_JS_ACTION_JOB_MAX_START_BASE_PRICE)))); mActions.put(ACTION_JOB_MAX_RUNNING, new Action(ACTION_JOB_MAX_RUNNING, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MAX_RUNNING_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MAX_RUNNING_CTP, DEFAULT_JS_ACTION_JOB_MAX_RUNNING_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE, DEFAULT_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE)))); mActions.put(ACTION_JOB_HIGH_START, new Action(ACTION_JOB_HIGH_START, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_START_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_START_CTP, DEFAULT_JS_ACTION_JOB_HIGH_START_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_START_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_START_BASE_PRICE, DEFAULT_JS_ACTION_JOB_HIGH_START_BASE_PRICE)))); mActions.put(ACTION_JOB_HIGH_RUNNING, new Action(ACTION_JOB_HIGH_RUNNING, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_RUNNING_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_RUNNING_CTP, DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE, DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE)))); mActions.put(ACTION_JOB_DEFAULT_START, new Action(ACTION_JOB_DEFAULT_START, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_START_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_START_CTP, DEFAULT_JS_ACTION_JOB_DEFAULT_START_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE, DEFAULT_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE)))); mActions.put(ACTION_JOB_DEFAULT_RUNNING, new Action(ACTION_JOB_DEFAULT_RUNNING, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_RUNNING_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_RUNNING_CTP, DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE, DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE)))); mActions.put(ACTION_JOB_LOW_START, new Action(ACTION_JOB_LOW_START, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_LOW_START_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_LOW_START_CTP, DEFAULT_JS_ACTION_JOB_LOW_START_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_LOW_START_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_LOW_START_BASE_PRICE, DEFAULT_JS_ACTION_JOB_LOW_START_BASE_PRICE)))); mActions.put(ACTION_JOB_LOW_RUNNING, new Action(ACTION_JOB_LOW_RUNNING, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_LOW_RUNNING_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_LOW_RUNNING_CTP, DEFAULT_JS_ACTION_JOB_LOW_RUNNING_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE, DEFAULT_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE)))); mActions.put(ACTION_JOB_MIN_START, new Action(ACTION_JOB_MIN_START, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MIN_START_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MIN_START_CTP, DEFAULT_JS_ACTION_JOB_MIN_START_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MIN_START_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MIN_START_BASE_PRICE, DEFAULT_JS_ACTION_JOB_MIN_START_BASE_PRICE)))); mActions.put(ACTION_JOB_MIN_RUNNING, new Action(ACTION_JOB_MIN_RUNNING, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MIN_RUNNING_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MIN_RUNNING_CTP, DEFAULT_JS_ACTION_JOB_MIN_RUNNING_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE, DEFAULT_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE)))); mActions.put(ACTION_JOB_TIMEOUT, new Action(ACTION_JOB_TIMEOUT, - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP, DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP)), - arcToNarc(mParser.getInt(KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE, + arcToCake(mParser.getInt(KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE, DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE)))); mRewards.put(REWARD_TOP_ACTIVITY, new Reward(REWARD_TOP_ACTIVITY, - arcToNarc(mParser.getInt(KEY_JS_REWARD_TOP_ACTIVITY_INSTANT, + arcToCake(mParser.getInt(KEY_JS_REWARD_TOP_ACTIVITY_INSTANT, DEFAULT_JS_REWARD_TOP_ACTIVITY_INSTANT)), - (long) (arcToNarc(1) * mParser.getFloat(KEY_JS_REWARD_TOP_ACTIVITY_ONGOING, + (long) (arcToCake(1) * mParser.getFloat(KEY_JS_REWARD_TOP_ACTIVITY_ONGOING, DEFAULT_JS_REWARD_TOP_ACTIVITY_ONGOING)), - arcToNarc(mParser.getInt(KEY_JS_REWARD_TOP_ACTIVITY_MAX, + arcToCake(mParser.getInt(KEY_JS_REWARD_TOP_ACTIVITY_MAX, DEFAULT_JS_REWARD_TOP_ACTIVITY_MAX)))); mRewards.put(REWARD_NOTIFICATION_SEEN, new Reward(REWARD_NOTIFICATION_SEEN, - arcToNarc(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_INSTANT, + arcToCake(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_INSTANT, DEFAULT_JS_REWARD_NOTIFICATION_SEEN_INSTANT)), - arcToNarc(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_ONGOING, + arcToCake(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_ONGOING, DEFAULT_JS_REWARD_NOTIFICATION_SEEN_ONGOING)), - arcToNarc(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_MAX, + arcToCake(mParser.getInt(KEY_JS_REWARD_NOTIFICATION_SEEN_MAX, DEFAULT_JS_REWARD_NOTIFICATION_SEEN_MAX)))); mRewards.put(REWARD_NOTIFICATION_INTERACTION, new Reward(REWARD_NOTIFICATION_INTERACTION, - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT, DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_REWARD_NOTIFICATION_INTERACTION_ONGOING, DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_REWARD_NOTIFICATION_INTERACTION_MAX, DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_MAX)))); mRewards.put(REWARD_WIDGET_INTERACTION, new Reward(REWARD_WIDGET_INTERACTION, - arcToNarc(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_INSTANT, + arcToCake(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_INSTANT, DEFAULT_JS_REWARD_WIDGET_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_ONGOING, + arcToCake(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_ONGOING, DEFAULT_JS_REWARD_WIDGET_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_MAX, + arcToCake(mParser.getInt(KEY_JS_REWARD_WIDGET_INTERACTION_MAX, DEFAULT_JS_REWARD_WIDGET_INTERACTION_MAX)))); mRewards.put(REWARD_OTHER_USER_INTERACTION, new Reward(REWARD_OTHER_USER_INTERACTION, - arcToNarc(mParser.getInt(KEY_JS_REWARD_OTHER_USER_INTERACTION_INSTANT, + arcToCake(mParser.getInt(KEY_JS_REWARD_OTHER_USER_INTERACTION_INSTANT, DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_INSTANT)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_REWARD_OTHER_USER_INTERACTION_ONGOING, DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_ONGOING)), - arcToNarc(mParser.getInt( + arcToCake(mParser.getInt( KEY_JS_REWARD_OTHER_USER_INTERACTION_MAX, DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_MAX)))); } @@ -339,14 +339,14 @@ public class JobSchedulerEconomicPolicy extends EconomicPolicy { void dump(IndentingPrintWriter pw) { pw.println("Min satiated balances:"); pw.increaseIndent(); - pw.print("Exempted", narcToString(mMinSatiatedBalanceExempted)).println(); - pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println(); + pw.print("Exempted", cakeToString(mMinSatiatedBalanceExempted)).println(); + pw.print("Other", cakeToString(mMinSatiatedBalanceOther)).println(); pw.decreaseIndent(); - pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println(); + pw.print("Max satiated balance", cakeToString(mMaxSatiatedBalance)).println(); pw.print("Consumption limits: ["); - pw.print(narcToString(mInitialSatiatedConsumptionLimit)); + pw.print(cakeToString(mInitialSatiatedConsumptionLimit)); pw.print(", "); - pw.print(narcToString(mHardSatiatedConsumptionLimit)); + pw.print(cakeToString(mHardSatiatedConsumptionLimit)); pw.println("]"); pw.println(); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/Ledger.java b/apex/jobscheduler/service/java/com/android/server/tare/Ledger.java index dfdc20a329993..2e2a9b56d3dfa 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/Ledger.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/Ledger.java @@ -18,9 +18,9 @@ package com.android.server.tare; import static android.text.format.DateUtils.HOUR_IN_MILLIS; +import static com.android.server.tare.TareUtils.cakeToString; import static com.android.server.tare.TareUtils.dumpTime; import static com.android.server.tare.TareUtils.getCurrentTimeMillis; -import static com.android.server.tare.TareUtils.narcToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -129,7 +129,7 @@ class Ledger { } void dump(IndentingPrintWriter pw, int numRecentTransactions) { - pw.print("Current balance", narcToString(getCurrentBalance())).println(); + pw.print("Current balance", cakeToString(getCurrentBalance())).println(); final int size = mTransactions.size(); for (int i = Math.max(0, size - numRecentTransactions); i < size; ++i) { @@ -146,9 +146,9 @@ class Ledger { pw.print(")"); } pw.print(" --> "); - pw.print(narcToString(transaction.delta)); + pw.print(cakeToString(transaction.delta)); pw.print(" (ctp="); - pw.print(narcToString(transaction.ctp)); + pw.print(cakeToString(transaction.ctp)); pw.println(")"); } } diff --git a/apex/jobscheduler/service/java/com/android/server/tare/README.md b/apex/jobscheduler/service/java/com/android/server/tare/README.md index 33eadffb85928..72d506972dd16 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/README.md +++ b/apex/jobscheduler/service/java/com/android/server/tare/README.md @@ -105,5 +105,7 @@ consumed. * ARC: Android Resource Credits are the "currency" units used as an abstraction layer over the real battery drain. They allow the system to standardize costs and prices across various devices. +* Cake: A lie; also the smallest unit of an ARC (1 cake = one-billionth of an ARC = 1 nano-ARC). + When the apps request to do something, we shall let them eat cake. * NARC: The smallest unit of an ARC. A narc is 1 nano-ARC. * Satiated: used to refer to when the device is fully charged (at 100% battery level) \ No newline at end of file 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 8662110241692..7442877548f1c 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java @@ -84,7 +84,7 @@ public class Scribe { private static final String XML_ATTR_USER_ID = "userId"; private static final String XML_ATTR_VERSION = "version"; private static final String XML_ATTR_LAST_RECLAMATION_TIME = "lastReclamationTime"; - private static final String XML_ATTR_REMAINING_CONSUMABLE_NARCS = "remainingConsumableNarcs"; + private static final String XML_ATTR_REMAINING_CONSUMABLE_CAKES = "remainingConsumableCakes"; private static final String XML_ATTR_CONSUMPTION_LIMIT = "consumptionLimit"; /** Version of the file schema. */ @@ -100,7 +100,7 @@ public class Scribe { @GuardedBy("mIrs.getLock()") private long mSatiatedConsumptionLimit; @GuardedBy("mIrs.getLock()") - private long mRemainingConsumableNarcs; + private long mRemainingConsumableCakes; @GuardedBy("mIrs.getLock()") private final SparseArrayMap mLedgers = new SparseArrayMap<>(); @@ -122,10 +122,10 @@ public class Scribe { } @GuardedBy("mIrs.getLock()") - void adjustRemainingConsumableNarcsLocked(long delta) { + void adjustRemainingConsumableCakesLocked(long delta) { if (delta != 0) { // No point doing any work if the change is 0. - mRemainingConsumableNarcs += delta; + mRemainingConsumableCakes += delta; postWrite(); } } @@ -168,7 +168,7 @@ public class Scribe { * call it for normal operation. */ @GuardedBy("mIrs.getLock()") - long getNarcsInCirculationForLoggingLocked() { + long getCakesInCirculationForLoggingLocked() { long sum = 0; for (int uIdx = mLedgers.numMaps() - 1; uIdx >= 0; --uIdx) { for (int pIdx = mLedgers.numElementsForKeyAt(uIdx) - 1; pIdx >= 0; --pIdx) { @@ -178,10 +178,10 @@ public class Scribe { return sum; } - /** Returns the total amount of narcs that remain to be consumed. */ + /** Returns the total amount of cakes that remain to be consumed. */ @GuardedBy("mIrs.getLock()") - long getRemainingConsumableNarcsLocked() { - return mRemainingConsumableNarcs; + long getRemainingConsumableCakesLocked() { + return mRemainingConsumableCakes; } @GuardedBy("mIrs.getLock()") @@ -189,11 +189,11 @@ public class Scribe { mLedgers.clear(); if (!recordExists()) { mSatiatedConsumptionLimit = mIrs.getInitialSatiatedConsumptionLimitLocked(); - mRemainingConsumableNarcs = mIrs.getConsumptionLimitLocked(); + mRemainingConsumableCakes = mIrs.getConsumptionLimitLocked(); return; } mSatiatedConsumptionLimit = 0; - mRemainingConsumableNarcs = 0; + mRemainingConsumableCakes = 0; final SparseArray> installedPackagesPerUser = new SparseArray<>(); final List installedPackages = mIrs.getInstalledPackages(); @@ -254,8 +254,8 @@ public class Scribe { parser.getAttributeLong(null, XML_ATTR_CONSUMPTION_LIMIT, mIrs.getInitialSatiatedConsumptionLimitLocked()); final long consumptionLimit = mIrs.getConsumptionLimitLocked(); - mRemainingConsumableNarcs = Math.min(consumptionLimit, - parser.getAttributeLong(null, XML_ATTR_REMAINING_CONSUMABLE_NARCS, + mRemainingConsumableCakes = Math.min(consumptionLimit, + parser.getAttributeLong(null, XML_ATTR_REMAINING_CONSUMABLE_CAKES, consumptionLimit)); break; case XML_TAG_USER: @@ -285,11 +285,11 @@ public class Scribe { @GuardedBy("mIrs.getLock()") void setConsumptionLimitLocked(long limit) { - if (mRemainingConsumableNarcs > limit) { - mRemainingConsumableNarcs = limit; + if (mRemainingConsumableCakes > limit) { + mRemainingConsumableCakes = limit; } else if (limit > mSatiatedConsumptionLimit) { - final long diff = mSatiatedConsumptionLimit - mRemainingConsumableNarcs; - mRemainingConsumableNarcs = (limit - diff); + final long diff = mSatiatedConsumptionLimit - mRemainingConsumableCakes; + mRemainingConsumableCakes = (limit - diff); } mSatiatedConsumptionLimit = limit; postWrite(); @@ -306,7 +306,7 @@ public class Scribe { TareHandlerThread.getHandler().removeCallbacks(mCleanRunnable); TareHandlerThread.getHandler().removeCallbacks(mWriteRunnable); mLedgers.clear(); - mRemainingConsumableNarcs = 0; + mRemainingConsumableCakes = 0; mSatiatedConsumptionLimit = 0; mLastReclamationTime = 0; } @@ -491,8 +491,8 @@ public class Scribe { out.startTag(null, XML_TAG_HIGH_LEVEL_STATE); out.attributeLong(null, XML_ATTR_LAST_RECLAMATION_TIME, mLastReclamationTime); out.attributeLong(null, XML_ATTR_CONSUMPTION_LIMIT, mSatiatedConsumptionLimit); - out.attributeLong(null, XML_ATTR_REMAINING_CONSUMABLE_NARCS, - mRemainingConsumableNarcs); + out.attributeLong(null, XML_ATTR_REMAINING_CONSUMABLE_CAKES, + mRemainingConsumableCakes); out.endTag(null, XML_TAG_HIGH_LEVEL_STATE); for (int uIdx = mLedgers.numMaps() - 1; uIdx >= 0; --uIdx) { diff --git a/apex/jobscheduler/service/java/com/android/server/tare/TareUtils.java b/apex/jobscheduler/service/java/com/android/server/tare/TareUtils.java index 78508d4129efb..87db8637ddac5 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/TareUtils.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/TareUtils.java @@ -26,7 +26,7 @@ import java.text.SimpleDateFormat; import java.time.Clock; class TareUtils { - private static final long NARC_IN_ARC = 1_000_000_000L; + private static final long CAKE_IN_ARC = 1_000_000_000L; @SuppressLint("SimpleDateFormat") private static final SimpleDateFormat sDumpDateFormat = @@ -35,8 +35,8 @@ class TareUtils { @VisibleForTesting static Clock sSystemClock = Clock.systemUTC(); - static long arcToNarc(int arcs) { - return arcs * NARC_IN_ARC; + static long arcToCake(int arcs) { + return arcs * CAKE_IN_ARC; } static void dumpTime(IndentingPrintWriter pw, long time) { @@ -47,26 +47,26 @@ class TareUtils { return sSystemClock.millis(); } - static int narcToArc(long narcs) { - return (int) (narcs / NARC_IN_ARC); + static int cakeToArc(long cakes) { + return (int) (cakes / CAKE_IN_ARC); } @NonNull - static String narcToString(long narcs) { - if (narcs == 0) { + static String cakeToString(long cakes) { + if (cakes == 0) { return "0 ARCs"; } - final long sub = Math.abs(narcs) % NARC_IN_ARC; - final long arcs = narcToArc(narcs); + final long sub = Math.abs(cakes) % CAKE_IN_ARC; + final long arcs = cakeToArc(cakes); if (arcs == 0) { return sub == 1 - ? sub + " narc" - : sub + " narcs"; + ? sub + " cake" + : sub + " cakes"; } StringBuilder sb = new StringBuilder(); sb.append(arcs); if (sub > 0) { - sb.append(".").append(sub / (NARC_IN_ARC / 1000)); + sb.append(".").append(sub / (CAKE_IN_ARC / 1000)); } sb.append(" ARC"); if (arcs != 1 || sub > 0) { diff --git a/services/tests/mockingservicestests/src/com/android/server/tare/ScribeTest.java b/services/tests/mockingservicestests/src/com/android/server/tare/ScribeTest.java index c2cf2ff439cae..14f95e93577e2 100644 --- a/services/tests/mockingservicestests/src/com/android/server/tare/ScribeTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/tare/ScribeTest.java @@ -107,7 +107,7 @@ public class ScribeTest { @Test public void testWriteHighLevelStateToDisk() { long lastReclamationTime = System.currentTimeMillis(); - long remainingConsumableNarcs = 2000L; + long remainingConsumableCakes = 2000L; long consumptionLimit = 500_000L; when(mIrs.getConsumptionLimitLocked()).thenReturn(consumptionLimit); @@ -118,20 +118,20 @@ public class ScribeTest { ledger.recordTransaction(new Ledger.Transaction(0, 1000L, 1, null, -5000, 3000)); mScribeUnderTest.setLastReclamationTimeLocked(lastReclamationTime); mScribeUnderTest.setConsumptionLimitLocked(consumptionLimit); - mScribeUnderTest.adjustRemainingConsumableNarcsLocked( - remainingConsumableNarcs - consumptionLimit); + mScribeUnderTest.adjustRemainingConsumableCakesLocked( + remainingConsumableCakes - consumptionLimit); assertEquals(lastReclamationTime, mScribeUnderTest.getLastReclamationTimeLocked()); - assertEquals(remainingConsumableNarcs, - mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(remainingConsumableCakes, + mScribeUnderTest.getRemainingConsumableCakesLocked()); assertEquals(consumptionLimit, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); mScribeUnderTest.writeImmediatelyForTesting(); mScribeUnderTest.loadFromDiskLocked(); assertEquals(lastReclamationTime, mScribeUnderTest.getLastReclamationTimeLocked()); - assertEquals(remainingConsumableNarcs, - mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(remainingConsumableCakes, + mScribeUnderTest.getRemainingConsumableCakesLocked()); assertEquals(consumptionLimit, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); } @@ -234,32 +234,32 @@ public class ScribeTest { @Test public void testChangingConsumable() { assertEquals(0, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(0, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(0, mScribeUnderTest.getRemainingConsumableCakesLocked()); // Limit increased, so remaining value should be adjusted as well mScribeUnderTest.setConsumptionLimitLocked(1000); assertEquals(1000, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(1000, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(1000, mScribeUnderTest.getRemainingConsumableCakesLocked()); // Limit decreased below remaining, so remaining value should be adjusted as well mScribeUnderTest.setConsumptionLimitLocked(500); assertEquals(500, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(500, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(500, mScribeUnderTest.getRemainingConsumableCakesLocked()); - mScribeUnderTest.adjustRemainingConsumableNarcsLocked(-100); + mScribeUnderTest.adjustRemainingConsumableCakesLocked(-100); assertEquals(500, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(400, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(400, mScribeUnderTest.getRemainingConsumableCakesLocked()); // Limit increased, so remaining value should be adjusted by the difference as well mScribeUnderTest.setConsumptionLimitLocked(1000); assertEquals(1000, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(900, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(900, mScribeUnderTest.getRemainingConsumableCakesLocked()); // Limit decreased, but above remaining, so remaining value should left alone mScribeUnderTest.setConsumptionLimitLocked(950); assertEquals(950, mScribeUnderTest.getSatiatedConsumptionLimitLocked()); - assertEquals(900, mScribeUnderTest.getRemainingConsumableNarcsLocked()); + assertEquals(900, mScribeUnderTest.getRemainingConsumableCakesLocked()); } private void assertLedgersEqual(Ledger expected, Ledger actual) {