From f6a78a8cd7005f7abb49f47c3c7cfbeb8046c391 Mon Sep 17 00:00:00 2001 From: Collin Fijalkovich Date: Thu, 18 Feb 2021 13:18:10 -0800 Subject: [PATCH] Avoid TransferPipe for local dumpCacheInfo calls Make a process-local call to PropertyInvalidatedCache instead of dumping cache state through a TransferPipe to avoid blocking when the pipe buffer fills. Bug: 180051995 Test: Ran dumpsys cacheinfo and validated output Merged-In: I1e4ab8e1d09b98b379d81079fd26ff2129b5b65a Change-Id: Ib0df61ec1a30c016d1534ba483ebba919e279ed1 --- .../java/com/android/server/am/ActivityManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 900871dfbbb4c..89c09200034eb 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -183,6 +183,7 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.app.ProcessMemoryState; import android.app.ProfilerInfo; +import android.app.PropertyInvalidatedCache; import android.app.WaitResult; import android.app.backup.IBackupManager; import android.app.usage.UsageEvents; @@ -12834,6 +12835,10 @@ public class ActivityManagerService extends IActivityManager.Stub if (r.thread != null) { pw.println("\n\n** Cache info for pid " + r.pid + " [" + r.processName + "] **"); pw.flush(); + if (r.pid == MY_PID) { + PropertyInvalidatedCache.dumpCacheInfo(fd, args); + continue; + } try { TransferPipe tp = new TransferPipe(); try {