From fc23ee64533a94b5158125428f2fa6670a9de23b Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Mon, 9 Sep 2019 17:47:31 -0700 Subject: [PATCH] AudioService: Add the AudioDeviceBroker's message queue to the dump Clogged queue means device-related requests will not be served. Example dump snippet: AudioDeviceBroker: Message handler (watch for unhandled messages): Handler (com.android.server.audio.AudioDeviceBroker$BrokerHandler) {753fed2} @ 359741 Looper (AudioDeviceBroker, tid 115) {ed3aba3} (Total messages: 0, polling=true, quitting=false) Bug: 135763139 Test: adb shell dumpsys audio Change-Id: If2130a4bd8bd9536df01656fe1a8f94548912ab9 Merged-In: If2130a4bd8bd9536df01656fe1a8f94548912ab9 --- .../com/android/server/audio/AudioDeviceBroker.java | 11 +++++++++++ .../java/com/android/server/audio/AudioService.java | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java index 884ecbaac0589..4d09c3b73a9d2 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java +++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java @@ -40,9 +40,11 @@ import android.os.PowerManager; import android.os.SystemClock; import android.os.UserHandle; import android.util.Log; +import android.util.PrintWriterPrinter; import com.android.internal.annotations.GuardedBy; +import java.io.PrintWriter; /** @hide */ /*package*/ final class AudioDeviceBroker { @@ -597,6 +599,15 @@ import com.android.internal.annotations.GuardedBy; } } + /*package*/ void dump(PrintWriter pw, String prefix) { + if (mBrokerHandler != null) { + pw.println(prefix + "Message handler (watch for unhandled messages):"); + mBrokerHandler.dump(new PrintWriterPrinter(pw), prefix + " "); + } else { + pw.println("Message handler is null"); + } + } + //--------------------------------------------------------------------- // Internal handling of messages // These methods are ALL synchronous, in response to message handling in BrokerHandler diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index df8c480d3b30f..5aa6a60bd44a2 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -6417,11 +6417,12 @@ public class AudioService extends IAudioService.Stub dumpAudioPolicies(pw); mDynPolicyLogger.dump(pw); - mPlaybackMonitor.dump(pw); - mRecordMonitor.dump(pw); + pw.println("\nAudioDeviceBroker:"); + mDeviceBroker.dump(pw, " "); + pw.println("\n"); pw.println("\nEvent logs:"); mModeLogger.dump(pw);