Delete latency tracking information in the Connection.

The information gathered here will no longer be valid once we
start dispatching multiple events at a time to the same connection.
Moreover, we are more concerned with end-to-end latency, which we
can measure with sufficiently high accuracy in other ways.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420

Change-Id: I49a0c9876b64af56b40e96e0d98c45f325da2a73
This commit is contained in:
Jeff Brown
2012-02-06 16:23:50 -08:00
parent 9831d90db8
commit 59f1ff9978
2 changed files with 3 additions and 25 deletions

View File

@@ -1926,10 +1926,6 @@ void InputDispatcher::startDispatchCycleLocked(nsecs_t currentTime,
} }
} }
// Record information about the newly started dispatch cycle.
connection->lastEventTime = eventEntry->eventTime;
connection->lastDispatchTime = currentTime;
// Notify other system components. // Notify other system components.
onDispatchCycleStartedLocked(currentTime, connection); onDispatchCycleStartedLocked(currentTime, connection);
} }
@@ -1937,12 +1933,8 @@ void InputDispatcher::startDispatchCycleLocked(nsecs_t currentTime,
void InputDispatcher::finishDispatchCycleLocked(nsecs_t currentTime, void InputDispatcher::finishDispatchCycleLocked(nsecs_t currentTime,
const sp<Connection>& connection, bool handled) { const sp<Connection>& connection, bool handled) {
#if DEBUG_DISPATCH_CYCLE #if DEBUG_DISPATCH_CYCLE
ALOGD("channel '%s' ~ finishDispatchCycle - %01.1fms since event, " ALOGD("channel '%s' ~ finishDispatchCycle - handled=%s",
"%01.1fms since dispatch, handled=%s", connection->getInputChannelName(), toString(handled));
connection->getInputChannelName(),
connection->getEventLatencyMillis(currentTime),
connection->getDispatchLatencyMillis(currentTime),
toString(handled));
#endif #endif
if (connection->status == Connection::STATUS_BROKEN if (connection->status == Connection::STATUS_BROKEN
@@ -3951,8 +3943,7 @@ InputDispatcher::Connection::Connection(const sp<InputChannel>& inputChannel,
const sp<InputWindowHandle>& inputWindowHandle, bool monitor) : const sp<InputWindowHandle>& inputWindowHandle, bool monitor) :
status(STATUS_NORMAL), inputChannel(inputChannel), inputWindowHandle(inputWindowHandle), status(STATUS_NORMAL), inputChannel(inputChannel), inputWindowHandle(inputWindowHandle),
monitor(monitor), monitor(monitor),
inputPublisher(inputChannel), inputPublisher(inputChannel) {
lastEventTime(LONG_LONG_MAX), lastDispatchTime(LONG_LONG_MAX) {
} }
InputDispatcher::Connection::~Connection() { InputDispatcher::Connection::~Connection() {

View File

@@ -784,9 +784,6 @@ private:
InputState inputState; InputState inputState;
Queue<DispatchEntry> outboundQueue; Queue<DispatchEntry> outboundQueue;
nsecs_t lastEventTime; // the time when the event was originally captured
nsecs_t lastDispatchTime; // the time when the last event was dispatched
explicit Connection(const sp<InputChannel>& inputChannel, explicit Connection(const sp<InputChannel>& inputChannel,
const sp<InputWindowHandle>& inputWindowHandle, bool monitor); const sp<InputWindowHandle>& inputWindowHandle, bool monitor);
@@ -797,16 +794,6 @@ private:
// Finds a DispatchEntry in the outbound queue associated with the specified event. // Finds a DispatchEntry in the outbound queue associated with the specified event.
// Returns NULL if not found. // Returns NULL if not found.
DispatchEntry* findQueuedDispatchEntryForEvent(const EventEntry* eventEntry) const; DispatchEntry* findQueuedDispatchEntryForEvent(const EventEntry* eventEntry) const;
// Gets the time since the current event was originally obtained from the input driver.
inline double getEventLatencyMillis(nsecs_t currentTime) const {
return (currentTime - lastEventTime) / 1000000.0;
}
// Gets the time since the current event entered the outbound dispatch queue.
inline double getDispatchLatencyMillis(nsecs_t currentTime) const {
return (currentTime - lastDispatchTime) / 1000000.0;
}
}; };
enum DropReason { enum DropReason {