From 3d6d5f01859ad635d261786cda98a836628202d1 Mon Sep 17 00:00:00 2001 From: Oleg Petsjonkin Date: Wed, 22 Mar 2023 17:59:58 +0000 Subject: [PATCH] Moving BrightnessTracker dump outside of syncRoot lock Bug: b/261799432 Test: adb shell dumpsys display Change-Id: I6eaece7f5a56fdce1c06487b9caee024ac3421ee --- .../server/display/DisplayManagerService.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index e01aa9b33784b..ea0a4ab563209 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -2589,9 +2589,7 @@ public final class DisplayManagerService extends SystemService { void setDisplayModeDirectorLoggingEnabled(boolean enabled) { synchronized (mSyncRoot) { - if (mDisplayModeDirector != null) { - mDisplayModeDirector.setLoggingEnabled(enabled); - } + mDisplayModeDirector.setLoggingEnabled(enabled); } } @@ -2852,8 +2850,11 @@ public final class DisplayManagerService extends SystemService { private void dumpInternal(PrintWriter pw) { pw.println("DISPLAY MANAGER (dumpsys display)"); + BrightnessTracker brightnessTrackerLocal; synchronized (mSyncRoot) { + brightnessTrackerLocal = mBrightnessTracker; + pw.println(" mSafeMode=" + mSafeMode); pw.println(" mPendingTraversal=" + mPendingTraversal); pw.println(" mViewports=" + mViewports); @@ -2926,10 +2927,6 @@ public final class DisplayManagerService extends SystemService { for (int i = 0; i < displayPowerControllerCount; i++) { mDisplayPowerControllers.valueAt(i).dump(pw); } - if (mBrightnessTracker != null) { - pw.println(); - mBrightnessTracker.dump(pw); - } pw.println(); mPersistentDataStore.dump(pw); @@ -2942,6 +2939,10 @@ public final class DisplayManagerService extends SystemService { mDisplayWindowPolicyControllers.valueAt(i).second.dump(" ", pw); } } + if (brightnessTrackerLocal != null) { + pw.println(); + brightnessTrackerLocal.dump(pw); + } pw.println(); mDisplayModeDirector.dump(pw); mBrightnessSynchronizer.dump(pw);