From 121bd084b93f6e511ff070e0d77d05c7008d68dd Mon Sep 17 00:00:00 2001 From: Ioana Stefan Date: Mon, 12 Oct 2020 18:35:38 +0200 Subject: [PATCH] Improve latency of IME tracing Improve latency of IME tracing by increasing the priority of the tracing thread and adding the dump of the debugging information at the beginning of the execution queue. The Design Doc for IME tracing is found here: go/ime-tracing Bug: 154348613 Test: start trace by calling "adb shell ime tracing start" end trace by calling "adb shell ime tracing stop" pull trace using "adb pull /data/misc/wmtrace/ime_trace.pb ime_trace.pb" Change-Id: I153ccac6d8b93f86f3180b0a23240c6a63758ed6 --- core/java/android/inputmethodservice/IInputMethodWrapper.java | 2 +- .../android/server/inputmethod/InputMethodManagerService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 0512305e71a20..bb2357e246171 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -280,7 +280,7 @@ class IInputMethodWrapper extends IInputMethod.Stub } CountDownLatch latch = new CountDownLatch(1); - mCaller.executeOrSendMessage(mCaller.obtainMessageOOOO(DO_DUMP, + mCaller.getHandler().sendMessageAtFrontOfQueue(mCaller.obtainMessageOOOO(DO_DUMP, fd, fout, args, latch)); try { if (!latch.await(5, TimeUnit.SECONDS)) { diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 9947ecd42e313..a738b035e8a4d 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -1713,7 +1713,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub mSettings, context); mMenuController = new InputMethodMenuController(this); - mTracingThread = new HandlerThread("android.tracing", Process.THREAD_PRIORITY_BACKGROUND); + mTracingThread = new HandlerThread("android.tracing", Process.THREAD_PRIORITY_FOREGROUND); mTracingThread.start(); }