From 274aa2cfb66b854306db6961ef60b065b261d5c4 Mon Sep 17 00:00:00 2001 From: Prabir Pradhan Date: Fri, 18 Aug 2023 17:27:07 +0000 Subject: Trace all InputListener stages InputListeners were previously traced using QueuedInputListener, which only served as a point trace of an event being processed. In the new approach, we add a wrapper around all of the stages so that we can get an idea of how long each stage took to process an event. Bug: 210460522 Test: manual with perfetto Change-Id: I4da2cff3ffec1c881978ee72d4b870a54b6d02c9 --- services/inputflinger/InputManager.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'services/inputflinger/InputManager.cpp') diff --git a/services/inputflinger/InputManager.cpp b/services/inputflinger/InputManager.cpp index da79ae3a48..0733a1c7c6 100644 --- a/services/inputflinger/InputManager.cpp +++ b/services/inputflinger/InputManager.cpp @@ -122,15 +122,24 @@ InputManager::InputManager(const sp& readerPolicy, mInputFlingerRust = createInputFlingerRust(); mDispatcher = createInputDispatcher(dispatcherPolicy); + mTracingStages.emplace_back( + std::make_unique("InputDispatcher", *mDispatcher)); if (ENABLE_INPUT_DEVICE_USAGE_METRICS) { - mCollector = std::make_unique(*mDispatcher); + mCollector = std::make_unique(*mTracingStages.back()); + mTracingStages.emplace_back( + std::make_unique("MetricsCollector", *mCollector)); } - mProcessor = ENABLE_INPUT_DEVICE_USAGE_METRICS ? std::make_unique(*mCollector) - : std::make_unique(*mDispatcher); - mBlocker = std::make_unique(*mProcessor); - mReader = createInputReader(readerPolicy, *mBlocker); + mProcessor = std::make_unique(*mTracingStages.back()); + mTracingStages.emplace_back( + std::make_unique("InputProcessor", *mProcessor)); + + mBlocker = std::make_unique(*mTracingStages.back()); + mTracingStages.emplace_back( + std::make_unique("UnwantedInteractionBlocker", *mBlocker)); + + mReader = createInputReader(readerPolicy, *mTracingStages.back()); } InputManager::~InputManager() { -- cgit v1.2.3-59-g8ed1b