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

Commit 3239cc68 authored by Fiona Campbell's avatar Fiona Campbell
Browse files

Enable all displaymanager logging

Enable all logging in display manager.
Add traces to collect screen state.

Bug: 284687313
Test: atest DisplayServiceTests
Test: logcat | grep display -i
Change-Id: I7ff3e45cb44889fa0630805af1e0a2d223ec2f27
parent 4bb1c57a
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -220,7 +220,7 @@ public final class DisplayManagerGlobal {

        registerCallbackIfNeededLocked();

        if (DEBUG || extraLogging()) {
        if (DEBUG) {
            Log.d(TAG, "getDisplayInfo: displayId=" + displayId + ", info=" + info);
        }
        return info;
@@ -402,7 +402,7 @@ public final class DisplayManagerGlobal {
    }

    private void maybeLogAllDisplayListeners() {
        if (!sExtraDisplayListenerLogging) {
        if (!extraLogging()) {
            return;
        }

@@ -1222,7 +1222,7 @@ public final class DisplayManagerGlobal {

        private void handleMessage(Message msg) {
            if (extraLogging()) {
                Slog.i(TAG, "DisplayListenerDelegate(" + eventToString(msg.what)
                Slog.i(TAG, "DLD(" + eventToString(msg.what)
                        + ", display=" + msg.arg1
                        + ", mEventsMask=" + Long.toBinaryString(mEventsMask)
                        + ", mPackageName=" + mPackageName
@@ -1231,9 +1231,10 @@ public final class DisplayManagerGlobal {
            }
            if (DEBUG) {
                Trace.beginSection(
                        "DisplayListenerDelegate(" + eventToString(msg.what)
                        TextUtils.trimToSize(
                                "DLD(" + eventToString(msg.what)
                                + ", display=" + msg.arg1
                                + ", listener=" + mListener.getClass() + ")");
                                + ", listener=" + mListener.getClass() + ")", 127));
            }
            switch (msg.what) {
                case EVENT_DISPLAY_ADDED:
@@ -1422,11 +1423,12 @@ public final class DisplayManagerGlobal {
            sExtraDisplayListenerLogging = !TextUtils.isEmpty(EXTRA_LOGGING_PACKAGE_NAME)
                    && EXTRA_LOGGING_PACKAGE_NAME.equals(sCurrentPackageName);
        }
        return sExtraDisplayListenerLogging;
        // TODO: b/306170135 - return sExtraDisplayListenerLogging instead
        return true;
    }

    private static boolean extraLogging() {
        return sExtraDisplayListenerLogging && EXTRA_LOGGING_PACKAGE_NAME.equals(
                sCurrentPackageName);
        // TODO: b/306170135 - return sExtraDisplayListenerLogging & package name check instead
        return true;
    }
}
+6 −1
Original line number Diff line number Diff line
@@ -1051,7 +1051,8 @@ public final class ViewRootImpl implements ViewParent,
        mDisplay = display;
        mBasePackageName = context.getBasePackageName();
        final String name = DisplayProperties.debug_vri_package().orElse(null);
        mExtraDisplayListenerLogging = !TextUtils.isEmpty(name) && name.equals(mBasePackageName);
        // TODO: b/306170135 - return to using textutils check on package name.
        mExtraDisplayListenerLogging = true;
        mThread = Thread.currentThread();
        mLocation = new WindowLeaked(null);
        mLocation.fillInStackTrace();
@@ -2038,6 +2039,10 @@ public final class ViewRootImpl implements ViewParent,
                    Slog.i(mTag, "DisplayState - old: " + oldDisplayState
                            + ", new: " + newDisplayState);
                }
                if (Trace.isTagEnabled(Trace.TRACE_TAG_WINDOW_MANAGER)) {
                    Trace.traceCounter(Trace.TRACE_TAG_WINDOW_MANAGER,
                            "vri#screenState[" + mTag + "] state=", newDisplayState);
                }
                if (oldDisplayState != newDisplayState) {
                    mAttachInfo.mDisplayState = newDisplayState;
                    pokeDrawLockIfNeeded();
+28 −8
Original line number Diff line number Diff line
@@ -586,7 +586,8 @@ public final class DisplayManagerService extends SystemService {
        mSystemReady = false;
        mConfigParameterProvider = new DeviceConfigParameterProvider(DeviceConfigInterface.REAL);
        mExtraDisplayLoggingPackageName = DisplayProperties.debug_vri_package().orElse(null);
        mExtraDisplayEventLogging = !TextUtils.isEmpty(mExtraDisplayLoggingPackageName);
        // TODO: b/306170135 - return TextUtils package name check instead
        mExtraDisplayEventLogging = true;
    }

    public void setupSchedulerPolicies() {
@@ -2933,8 +2934,15 @@ public final class DisplayManagerService extends SystemService {
    // Send a display event if the display is enabled
    private void sendDisplayEventIfEnabledLocked(@NonNull LogicalDisplay display,
                                                 @DisplayEvent int event) {
        final boolean displayIsEnabled = display.isEnabledLocked();
        if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
            Trace.instant(Trace.TRACE_TAG_POWER,
                    "sendDisplayEventLocked#event=" + event + ",displayEnabled="
                            + displayIsEnabled);
        }

        // Only send updates outside of DisplayManagerService for enabled displays
        if (display.isEnabledLocked()) {
        if (displayIsEnabled) {
            sendDisplayEventLocked(display, event);
        } else if (mExtraDisplayEventLogging) {
            Slog.i(TAG, "Not Sending Display Event; display is not enabled: " + display);
@@ -2991,7 +2999,11 @@ public final class DisplayManagerService extends SystemService {
                    + displayId + ", event=" + event
                    + (uids != null ? ", uids=" + uids : ""));
        }

        if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
            Trace.instant(Trace.TRACE_TAG_POWER,
                    "deliverDisplayEvent#event=" + event + ",displayId="
                            + displayId   + (uids != null ? ", uids=" + uids : ""));
        }
        // Grab the lock and copy the callbacks.
        final int count;
        synchronized (mSyncRoot) {
@@ -3031,7 +3043,8 @@ public final class DisplayManagerService extends SystemService {
    }

    private boolean extraLogging(String packageName) {
        return mExtraDisplayEventLogging && mExtraDisplayLoggingPackageName.equals(packageName);
        // TODO: b/306170135 - return mExtraDisplayLoggingPackageName & package name check instead
        return true;
    }

    // Runs on Handler thread.
@@ -3498,10 +3511,13 @@ public final class DisplayManagerService extends SystemService {

        @Override
        public void binderDied() {
            if (DEBUG || mExtraDisplayEventLogging && mExtraDisplayLoggingPackageName.equals(
                    mPackageName)) {
            if (DEBUG || extraLogging(mPackageName)) {
                Slog.d(TAG, "Display listener for pid " + mPid + " died.");
            }
            if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
                Trace.instant(Trace.TRACE_TAG_POWER,
                        "displayManagerBinderDied#mPid=" + mPid);
            }
            onCallbackDied(this);
        }

@@ -3510,11 +3526,15 @@ public final class DisplayManagerService extends SystemService {
         */
        public boolean notifyDisplayEventAsync(int displayId, @DisplayEvent int event) {
            if (!shouldSendEvent(event)) {
                if (mExtraDisplayEventLogging && mExtraDisplayLoggingPackageName.equals(
                        mPackageName)) {
                if (extraLogging(mPackageName)) {
                    Slog.i(TAG,
                            "Not sending displayEvent: " + event + " due to mask:" + mEventsMask);
                }
                if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
                    Trace.instant(Trace.TRACE_TAG_POWER,
                            "notifyDisplayEventAsync#notSendingEvent=" + event + ",mEventsMask="
                                    + mEventsMask);
                }
                return true;
            }