Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a04181fc authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Report input metrics using LatencyAggregator

The new class, LatencyAggregator, is responsible for reporting the input
metrics to statsd.

Bug: 167947340
Test: tested using statsd_testdrive
Change-Id: I1990851a44df897fe989046e7363bd71e1c0c129
parent f2652121
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -65,9 +65,12 @@ cc_defaults {
        "libinput",
        "liblog",
        "libstatslog",
        "libstatspull",
        "libstatssocket",
        "libutils",
        "libui",
        "lib-platform-compat-native-api",
        "server_configurable_flags",
    ],
    static_libs: [
        "libattestation",
+4 −1
Original line number Diff line number Diff line
@@ -12,7 +12,10 @@ cc_benchmark {
    srcs: [
        "InputDispatcher_benchmarks.cpp",
    ],
    defaults: ["inputflinger_defaults"],
    defaults: [
        "inputflinger_defaults",
        "libinputdispatcher_defaults",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
+4 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ filegroup {
        "InputEventTimeline.cpp",
        "InputState.cpp",
        "InputTarget.cpp",
        "LatencyAggregator.cpp",
        "LatencyTracker.cpp",
        "Monitor.cpp",
        "TouchState.cpp",
@@ -58,9 +59,12 @@ cc_defaults {
        "libinput",
        "liblog",
        "libstatslog",
        "libstatspull",
        "libstatssocket",
        "libui",
        "libutils",
        "lib-platform-compat-native-api",
        "server_configurable_flags",
    ],
    static_libs: [
        "libattestation",
+3 −1
Original line number Diff line number Diff line
@@ -517,7 +517,8 @@ InputDispatcher::InputDispatcher(const sp<InputDispatcherPolicyInterface>& polic
        mFocusedDisplayId(ADISPLAY_ID_DEFAULT),
        mFocusedWindowRequestedPointerCapture(false),
        mWindowTokenWithPointerCapture(nullptr),
        mLatencyTracker(&mEmptyProcessor),
        mLatencyAggregator(),
        mLatencyTracker(&mLatencyAggregator),
        mCompatService(getCompatService()) {
    mLooper = new Looper(false);
    mReporter = createInputReporter();
@@ -5114,6 +5115,7 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) {
    dump += StringPrintf(INDENT2 "KeyRepeatTimeout: %" PRId64 "ms\n",
                         ns2ms(mConfig.keyRepeatTimeout));
    dump += mLatencyTracker.dump(INDENT2);
    dump += mLatencyAggregator.dump(INDENT2);
}

void InputDispatcher::dumpMonitors(std::string& dump, const std::vector<Monitor>& monitors) {
+2 −6
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include "InputState.h"
#include "InputTarget.h"
#include "InputThread.h"
#include "LatencyAggregator.h"
#include "LatencyTracker.h"
#include "Monitor.h"
#include "TouchState.h"
@@ -636,12 +637,7 @@ private:
    void doOnPointerDownOutsideFocusLockedInterruptible(CommandEntry* commandEntry) REQUIRES(mLock);

    // Statistics gathering.
    class EmptyTimelineProcessor : public InputEventTimelineProcessor {
        void processTimeline(const InputEventTimeline& timeline) override {
            // TODO(b/167947340): report latency information to the real aggregator
        }
    } mEmptyProcessor GUARDED_BY(mLock);

    LatencyAggregator mLatencyAggregator GUARDED_BY(mLock);
    LatencyTracker mLatencyTracker GUARDED_BY(mLock);
    void traceInboundQueueLengthLocked() REQUIRES(mLock);
    void traceOutboundQueueLength(const Connection& connection);
Loading