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

Commit 7703de09 authored by Kweku Adams's avatar Kweku Adams Committed by Android (Google) Code Review
Browse files

Merge "Improve dump."

parents 62237c12 da615a35
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ 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.getCurrentTimeMillis;
import static com.android.server.tare.TareUtils.narcToString;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -81,6 +80,8 @@ class Agent {
     * to use older transactions or provide older transactions to apps.
     */
    private static final long MAX_TRANSACTION_AGE_MS = 24 * HOUR_IN_MILLIS;
    /** The maximum number of transactions to dump per ledger. */
    private static final int MAX_NUM_TRANSACTION_DUMP = 25;

    private static final String ALARM_TAG_AFFORDABILITY_CHECK = "*tare.affordability_check*";
    private static final String ALARM_TAG_LEDGER_CLEANUP = "*tare.ledger_cleanup*";
@@ -193,6 +194,12 @@ class Agent {
        return balance;
    }

    /** Returns the total amount of narcs currently allocated to apps. */
    @GuardedBy("mLock")
    long getCurrentCirculationLocked() {
        return mCurrentNarcsInCirculation;
    }

    @GuardedBy("mLock")
    void noteInstantaneousEventLocked(final int userId, @NonNull final String pkgName,
            final int eventId, @Nullable String tag) {
@@ -1287,8 +1294,19 @@ class Agent {

    @GuardedBy("mLock")
    void dumpLocked(IndentingPrintWriter pw) {
        pw.print("Current GDP: ");
        pw.println(narcToString(mCurrentNarcsInCirculation));
        pw.println("Ledgers:");
        pw.increaseIndent();
        mLedgers.forEach((userId, pkgName, ledger) -> {
            pw.print(appToString(userId, pkgName));
            if (mIrs.isSystem(userId, pkgName)) {
                pw.print(" (system)");
            }
            pw.println();
            pw.increaseIndent();
            ledger.dump(pw, MAX_NUM_TRANSACTION_DUMP);
            pw.decreaseIndent();
        });
        pw.decreaseIndent();

        pw.println();
        mBalanceThresholdAlarmListener.dumpLocked(pw);
+19 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.KeyValueListParser;
import android.util.IndentingPrintWriter;
import android.util.Slog;
import android.util.SparseArray;

@@ -361,4 +362,22 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy {
                    TARE_ALARM_MANAGER_CONSTANTS));
        }
    }

    @Override
    void dump(IndentingPrintWriter pw) {
        pw.println("Actions:");
        pw.increaseIndent();
        for (int i = 0; i < mActions.size(); ++i) {
            dumpAction(pw, mActions.valueAt(i));
        }
        pw.decreaseIndent();

        pw.println();
        pw.println("Rewards:");
        pw.increaseIndent();
        for (int i = 0; i < mRewards.size(); ++i) {
            dumpReward(pw, mRewards.valueAt(i));
        }
        pw.decreaseIndent();
    }
}
+30 −0
Original line number Diff line number Diff line
@@ -148,5 +148,35 @@ public class CompleteEconomicPolicy extends EconomicPolicy {
    @Override
    void dump(IndentingPrintWriter pw) {
        dumpActiveModifiers(pw);

        pw.println();
        pw.println(getClass().getSimpleName() + ":");
        pw.increaseIndent();

        pw.println("Cached actions:");
        pw.increaseIndent();
        for (int i = 0; i < mActions.size(); ++i) {
            dumpAction(pw, mActions.valueAt(i));
        }
        pw.decreaseIndent();

        pw.println();
        pw.println("Cached rewards:");
        pw.increaseIndent();
        for (int i = 0; i < mRewards.size(); ++i) {
            dumpReward(pw, mRewards.valueAt(i));
        }
        pw.decreaseIndent();

        for (int i = 0; i < mEnabledEconomicPolicies.size(); i++) {
            final EconomicPolicy economicPolicy = mEnabledEconomicPolicies.valueAt(i);
            pw.println();
            pw.print("(Includes) ");
            pw.println(economicPolicy.getClass().getSimpleName() + ":");
            pw.increaseIndent();
            economicPolicy.dump(pw);
            pw.decreaseIndent();
        }
        pw.decreaseIndent();
    }
}
+23 −0
Original line number Diff line number Diff line
@@ -21,6 +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 android.annotation.CallSuper;
import android.annotation.IntDef;
@@ -399,4 +400,26 @@ public abstract class EconomicPolicy {
            pw.decreaseIndent();
        }
    }

    protected static void dumpAction(IndentingPrintWriter pw, @NonNull Action action) {
        pw.print(actionToString(action.id));
        pw.print(": ");
        pw.print("ctp=");
        pw.print(narcToString(action.costToProduce));
        pw.print(", basePrice=");
        pw.print(narcToString(action.basePrice));
        pw.println();
    }

    protected static void dumpReward(IndentingPrintWriter pw, @NonNull Reward reward) {
        pw.print(rewardToString(reward.id));
        pw.print(": ");
        pw.print("instant=");
        pw.print(narcToString(reward.instantReward));
        pw.print(", ongoing/sec=");
        pw.print(narcToString(reward.ongoingRewardPerSecond));
        pw.print(", maxDaily=");
        pw.print(narcToString(reward.maxDailyReward));
        pw.println();
    }
}
+20 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.text.format.DateUtils.MINUTE_IN_MILLIS;

import static com.android.server.tare.TareUtils.appToString;
import static com.android.server.tare.TareUtils.getCurrentTimeMillis;
import static com.android.server.tare.TareUtils.narcToString;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -601,6 +602,10 @@ public class InternalResourceService extends SystemService {
                if ("-h".equals(arg) || "--help".equals(arg)) {
                    dumpHelp(pw);
                    return;
                } else if ("-a".equals(arg)) {
                    // -a is passed when dumping a bug report so we have to acknowledge the
                    // argument. However, we currently don't do anything differently for bug
                    // reports.
                } else if (arg.length() > 0 && arg.charAt(0) == '-') {
                    pw.println("Unknown option: " + arg);
                    return;
@@ -787,9 +792,23 @@ public class InternalResourceService extends SystemService {
            pw.print("Current battery level: ");
            pw.println(mCurrentBatteryLevel);

            mCompleteEconomicPolicy.dump(pw);
            final long maxCircluation = getMaxCirculationLocked();
            pw.print("Max circulation (current/satiated): ");
            pw.print(narcToString(maxCircluation));
            pw.print("/");
            pw.println(narcToString(mCompleteEconomicPolicy.getMaxSatiatedCirculation()));

            final long currentCirculation = mAgent.getCurrentCirculationLocked();
            pw.print("Current GDP: ");
            pw.print(narcToString(currentCirculation));
            pw.print(" (");
            pw.print(String.format("%.2f", 100f * currentCirculation / maxCircluation));
            pw.println("% of current max)");

            pw.println();
            mCompleteEconomicPolicy.dump(pw);

            pw.println();
            mAgent.dumpLocked(pw);
        }
    }
Loading