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

Commit 5b7a5f67 authored by Kweku Adams's avatar Kweku Adams Committed by Automerger Merge Worker
Browse files

Merge "Clean up JSS dumping code." into sc-dev am: 648e0fa4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13618948

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I38a55fb8e9ca4e796977a275ee95647c20a682a8
parents 54c575d8 648e0fa4
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -313,7 +313,7 @@ public final class JobPackageTracker {
        }

        void dump(PrintWriter pw, String header, String prefix, long now, long nowElapsed,
                int filterUid) {
                int filterAppId) {
            final long period = getTotalTime(now);
            pw.print(prefix); pw.print(header); pw.print(" at ");
            pw.print(DateFormat.format("yyyy-MM-dd-HH-mm-ss", mStartClockTime).toString());
@@ -325,7 +325,7 @@ public final class JobPackageTracker {
            final int NE = mEntries.size();
            for (int i = 0; i < NE; i++) {
                int uid = mEntries.keyAt(i);
                if (filterUid != -1 && filterUid != UserHandle.getAppId(uid)) {
                if (filterAppId != -1 && filterAppId != UserHandle.getAppId(uid)) {
                    continue;
                }
                ArrayMap<String, PackageEntry> uidMap = mEntries.valueAt(i);
@@ -520,7 +520,7 @@ public final class JobPackageTracker {
        return time / (float)period;
    }

    public void dump(PrintWriter pw, String prefix, int filterUid) {
    public void dump(PrintWriter pw, String prefix, int filterAppId) {
        final long now = sUptimeMillisClock.millis();
        final long nowElapsed = sElapsedRealtimeClock.millis();
        final DataSet total;
@@ -533,11 +533,11 @@ public final class JobPackageTracker {
        mCurDataSet.addTo(total, now);
        for (int i = 1; i < mLastDataSets.length; i++) {
            if (mLastDataSets[i] != null) {
                mLastDataSets[i].dump(pw, "Historical stats", prefix, now, nowElapsed, filterUid);
                mLastDataSets[i].dump(pw, "Historical stats", prefix, now, nowElapsed, filterAppId);
                pw.println();
            }
        }
        total.dump(pw, "Current stats", prefix, now, nowElapsed, filterUid);
        total.dump(pw, "Current stats", prefix, now, nowElapsed, filterAppId);
    }

    public void dump(ProtoOutputStream proto, long fieldId, int filterUid) {
@@ -566,7 +566,7 @@ public final class JobPackageTracker {
        proto.end(token);
    }

    public boolean dumpHistory(PrintWriter pw, String prefix, int filterUid) {
    public boolean dumpHistory(PrintWriter pw, String prefix, int filterAppId) {
        final int size = mEventIndices.size();
        if (size <= 0) {
            return false;
@@ -576,7 +576,7 @@ public final class JobPackageTracker {
        for (int i=0; i<size; i++) {
            final int index = mEventIndices.indexOf(i);
            final int uid = mEventUids[index];
            if (filterUid != -1 && filterUid != UserHandle.getAppId(uid)) {
            if (filterAppId != -1 && filterAppId != UserHandle.getAppId(uid)) {
                continue;
            }
            final int cmd = mEventCmds[index] & EVENT_CMD_MASK;
+94 −47
Original line number Diff line number Diff line
@@ -3091,14 +3091,14 @@ public class JobSchedulerService extends com.android.server.SystemService
    }

    void dumpInternal(final IndentingPrintWriter pw, int filterUid) {
        final int filterUidFinal = UserHandle.getAppId(filterUid);
        final int filterAppId = UserHandle.getAppId(filterUid);
        final long now = sSystemClock.millis();
        final long nowElapsed = sElapsedRealtimeClock.millis();
        final long nowUptime = sUptimeMillisClock.millis();

        final Predicate<JobStatus> predicate = (js) -> {
            return filterUidFinal == -1 || UserHandle.getAppId(js.getUid()) == filterUidFinal
                    || UserHandle.getAppId(js.getSourceUid()) == filterUidFinal;
            return filterAppId == -1 || UserHandle.getAppId(js.getUid()) == filterAppId
                    || UserHandle.getAppId(js.getSourceUid()) == filterAppId;
        };
        synchronized (mLock) {
            mConstants.dump(pw);
@@ -3111,7 +3111,6 @@ public class JobSchedulerService extends com.android.server.SystemService

            for (int i = mJobRestrictions.size() - 1; i >= 0; i--) {
                mJobRestrictions.get(i).dumpConstants(pw);
                pw.println();
            }
            pw.println();

@@ -3122,18 +3121,22 @@ public class JobSchedulerService extends com.android.server.SystemService
            pw.print("Registered ");
            pw.print(mJobs.size());
            pw.println(" jobs:");
            pw.increaseIndent();
            boolean jobPrinted = false;
            if (mJobs.size() > 0) {
                final List<JobStatus> jobs = mJobs.mJobSet.getAllJobs();
                sortJobs(jobs);
                for (JobStatus job : jobs) {
                    pw.print("  JOB #"); job.printUniqueId(pw); pw.print(": ");
                    pw.println(job.toShortStringExceptUniqueId());

                    // Skip printing details if the caller requested a filter
                    if (!predicate.test(job)) {
                        continue;
                    }
                    jobPrinted = true;

                    pw.print("JOB #"); job.printUniqueId(pw); pw.print(": ");
                    pw.println(job.toShortStringExceptUniqueId());

                    pw.increaseIndent();
                    job.dump(pw, "", true, nowElapsed);

                    pw.print("Restricted due to:");
@@ -3168,10 +3171,15 @@ public class JobSchedulerService extends com.android.server.SystemService
                    pw.print(" comp=");
                    pw.print(isComponentUsable(job));
                    pw.println(")");

                    pw.decreaseIndent();
                }
            } else {
            }
            if (!jobPrinted) {
                pw.println("None.");
            }
            pw.decreaseIndent();

            for (int i=0; i<mControllers.size(); i++) {
                pw.println();
                pw.println(mControllers.get(i).getClass().getSimpleName() + ":");
@@ -3179,44 +3187,68 @@ public class JobSchedulerService extends com.android.server.SystemService
                mControllers.get(i).dumpControllerStateLocked(pw, predicate);
                pw.decreaseIndent();
            }
            pw.println();
            pw.println("Uid priority overrides:");

            boolean overridePrinted = false;
            for (int i=0; i< mUidPriorityOverride.size(); i++) {
                int uid = mUidPriorityOverride.keyAt(i);
                if (filterUidFinal == -1 || filterUidFinal == UserHandle.getAppId(uid)) {
                    pw.print("  "); pw.print(UserHandle.formatUid(uid));
                if (filterAppId == -1 || filterAppId == UserHandle.getAppId(uid)) {
                    if (!overridePrinted) {
                        overridePrinted = true;
                        pw.println();
                        pw.println("Uid priority overrides:");
                        pw.increaseIndent();
                    }
                    pw.print(UserHandle.formatUid(uid));
                    pw.print(": "); pw.println(mUidPriorityOverride.valueAt(i));
                }
            }
            if (mBackingUpUids.size() > 0) {
                pw.println();
                pw.println("Backing up uids:");
                boolean first = true;
            if (overridePrinted) {
                pw.decreaseIndent();
            }

            boolean backingPrinted = false;
            for (int i = 0; i < mBackingUpUids.size(); i++) {
                int uid = mBackingUpUids.keyAt(i);
                    if (filterUidFinal == -1 || filterUidFinal == UserHandle.getAppId(uid)) {
                        if (first) {
                            pw.print("  ");
                            first = false;
                if (filterAppId == -1 || filterAppId == UserHandle.getAppId(uid)) {
                    if (!backingPrinted) {
                        pw.println();
                        pw.println("Backing up uids:");
                        pw.increaseIndent();
                        backingPrinted = true;
                    } else {
                        pw.print(", ");
                    }
                    pw.print(UserHandle.formatUid(uid));
                }
            }
            if (backingPrinted) {
                pw.decreaseIndent();
                pw.println();
            }

            pw.println();
            mJobPackageTracker.dump(pw, "", filterUidFinal);
            mJobPackageTracker.dump(pw, "", filterAppId);
            pw.println();
            if (mJobPackageTracker.dumpHistory(pw, "", filterUidFinal)) {
            if (mJobPackageTracker.dumpHistory(pw, "", filterAppId)) {
                pw.println();
            }

            boolean pendingPrinted = false;
            pw.println("Pending queue:");
            pw.increaseIndent();
            for (int i=0; i<mPendingJobs.size(); i++) {
                JobStatus job = mPendingJobs.get(i);
                if (!predicate.test(job)) {
                    continue;
                }
                if (!pendingPrinted) {
                    pendingPrinted = true;
                }

                pw.print("Pending #"); pw.print(i); pw.print(": ");
                pw.println(job.toShortString());

                pw.increaseIndent();
                job.dump(pw, "", false, nowElapsed);
                int priority = evaluateJobPriorityLocked(job);
                pw.print("Evaluated priority: ");
@@ -3225,20 +3257,35 @@ public class JobSchedulerService extends com.android.server.SystemService
                pw.print("Tag: "); pw.println(job.getTag());
                pw.print("Enq: ");
                TimeUtils.formatDuration(job.madePending - nowUptime, pw);
                pw.decreaseIndent();
                pw.println();
            }
            if (!pendingPrinted) {
                pw.println("None");
            }
            pw.decreaseIndent();

            pw.println();
            pw.println("Active jobs:");
            pw.increaseIndent();
            for (int i=0; i<mActiveServices.size(); i++) {
                JobServiceContext jsc = mActiveServices.get(i);
                final JobStatus job = jsc.getRunningJobLocked();

                if (job != null && !predicate.test(job)) {
                    continue;
                }

                pw.print("Slot #"); pw.print(i); pw.print(": ");
                jsc.dumpLocked(pw, nowElapsed);

                final JobStatus job = jsc.getRunningJobLocked();
                if (job != null) {
                    pw.increaseIndent();

                    pw.increaseIndent();
                    job.dump(pw, "", false, nowElapsed);
                    pw.decreaseIndent();

                    pw.print("Evaluated priority: ");
                    pw.println(JobInfo.getPriorityString(job.lastEvaluatedPriority));

@@ -3246,8 +3293,8 @@ public class JobSchedulerService extends com.android.server.SystemService
                    TimeUtils.formatDuration(job.madeActive - nowUptime, pw);
                    pw.print(", pending for ");
                    TimeUtils.formatDuration(job.madeActive - job.madePending, pw);
                    pw.println();
                    pw.decreaseIndent();
                    pw.println();
                }
            }
            pw.decreaseIndent();
@@ -3269,13 +3316,13 @@ public class JobSchedulerService extends com.android.server.SystemService

    void dumpInternalProto(final FileDescriptor fd, int filterUid) {
        ProtoOutputStream proto = new ProtoOutputStream(fd);
        final int filterUidFinal = UserHandle.getAppId(filterUid);
        final int filterAppId = UserHandle.getAppId(filterUid);
        final long now = sSystemClock.millis();
        final long nowElapsed = sElapsedRealtimeClock.millis();
        final long nowUptime = sUptimeMillisClock.millis();
        final Predicate<JobStatus> predicate = (js) -> {
            return filterUidFinal == -1 || UserHandle.getAppId(js.getUid()) == filterUidFinal
                    || UserHandle.getAppId(js.getSourceUid()) == filterUidFinal;
            return filterAppId == -1 || UserHandle.getAppId(js.getUid()) == filterAppId
                    || UserHandle.getAppId(js.getSourceUid()) == filterAppId;
        };

        synchronized (mLock) {
@@ -3348,7 +3395,7 @@ public class JobSchedulerService extends com.android.server.SystemService
            }
            for (int i=0; i< mUidPriorityOverride.size(); i++) {
                int uid = mUidPriorityOverride.keyAt(i);
                if (filterUidFinal == -1 || filterUidFinal == UserHandle.getAppId(uid)) {
                if (filterAppId == -1 || filterAppId == UserHandle.getAppId(uid)) {
                    long pToken = proto.start(JobSchedulerServiceDumpProto.PRIORITY_OVERRIDES);
                    proto.write(JobSchedulerServiceDumpProto.PriorityOverride.UID, uid);
                    proto.write(JobSchedulerServiceDumpProto.PriorityOverride.OVERRIDE_VALUE,
@@ -3358,15 +3405,15 @@ public class JobSchedulerService extends com.android.server.SystemService
            }
            for (int i = 0; i < mBackingUpUids.size(); i++) {
                int uid = mBackingUpUids.keyAt(i);
                if (filterUidFinal == -1 || filterUidFinal == UserHandle.getAppId(uid)) {
                if (filterAppId == -1 || filterAppId == UserHandle.getAppId(uid)) {
                    proto.write(JobSchedulerServiceDumpProto.BACKING_UP_UIDS, uid);
                }
            }

            mJobPackageTracker.dump(proto, JobSchedulerServiceDumpProto.PACKAGE_TRACKER,
                    filterUidFinal);
                    filterAppId);
            mJobPackageTracker.dumpHistory(proto, JobSchedulerServiceDumpProto.HISTORY,
                    filterUidFinal);
                    filterAppId);

            for (JobStatus job : mPendingJobs) {
                final long pjToken = proto.start(JobSchedulerServiceDumpProto.PENDING_JOBS);
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ public class ThermalStatusRestriction extends JobRestriction {
    @Override
    public void dumpConstants(IndentingPrintWriter pw) {
        pw.print("In thermal throttling?: ");
        pw.print(mIsThermalRestricted);
        pw.println(mIsThermalRestricted);
    }

    @Override