diff options
Diffstat (limited to 'services/inputflinger/dispatcher/LatencyAggregator.h')
-rw-r--r-- | services/inputflinger/dispatcher/LatencyAggregator.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/services/inputflinger/dispatcher/LatencyAggregator.h b/services/inputflinger/dispatcher/LatencyAggregator.h deleted file mode 100644 index ed5731f8d9..0000000000 --- a/services/inputflinger/dispatcher/LatencyAggregator.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _UI_INPUT_INPUTDISPATCHER_LATENCYAGGREGATOR_H -#define _UI_INPUT_INPUTDISPATCHER_LATENCYAGGREGATOR_H - -#include <kll.h> -#include <statslog.h> -#include <utils/Timers.h> - -#include "InputEventTimeline.h" - -namespace android::inputdispatcher { - -enum SketchIndex : size_t { - EVENT_TO_READ = 0, - READ_TO_DELIVER = 1, - DELIVER_TO_CONSUME = 2, - CONSUME_TO_FINISH = 3, - CONSUME_TO_GPU_COMPLETE = 4, - GPU_COMPLETE_TO_PRESENT = 5, - END_TO_END = 6, // EVENT_TO_PRESENT - SIZE = 7, // Must be last -}; - -// Let's create a full timeline here: -// eventTime -// readTime -// <---- after this point, the data becomes per-connection -// deliveryTime // time at which the event was sent to the receiver -// consumeTime // time at which the receiver read the event -// finishTime // time at which the finish event was received -// GraphicsTimeline::GPU_COMPLETED_TIME -// GraphicsTimeline::PRESENT_TIME - -/** - * Keep sketches of the provided events and report slow events - */ -class LatencyAggregator final : public InputEventTimelineProcessor { -public: - LatencyAggregator(); - /** - * Record a complete event timeline - */ - void processTimeline(const InputEventTimeline& timeline) override; - - std::string dump(const char* prefix); - - ~LatencyAggregator(); - -private: - static AStatsManager_PullAtomCallbackReturn pullAtomCallback(int32_t atom_tag, - AStatsEventList* data, - void* cookie); - AStatsManager_PullAtomCallbackReturn pullData(AStatsEventList* data); - // ---------- Slow event handling ---------- - void processSlowEvent(const InputEventTimeline& timeline); - nsecs_t mLastSlowEventTime = 0; - // How many slow events have been skipped due to rate limiting - size_t mNumSkippedSlowEvents = 0; - // How many events have been received since the last time we reported a slow event - size_t mNumEventsSinceLastSlowEventReport = 0; - - // ---------- Statistics handling ---------- - void processStatistics(const InputEventTimeline& timeline); - // Sketches - std::array<std::unique_ptr<dist_proc::aggregation::KllQuantile>, SketchIndex::SIZE> - mDownSketches; - std::array<std::unique_ptr<dist_proc::aggregation::KllQuantile>, SketchIndex::SIZE> - mMoveSketches; - // How many events have been processed so far - size_t mNumSketchEventsProcessed = 0; -}; - -} // namespace android::inputdispatcher - -#endif // _UI_INPUT_INPUTDISPATCHER_LATENCYAGGREGATOR_H |