From 21f16a049a643ad4721d99fa2c013c756256452c Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Fri, 15 Nov 2019 17:37:03 -0800 Subject: [PATCH] logd: print a message when kicking a client or skipping entries We're kicking logcat clients more frequently than expected, so print this information for debugging purposes. Bug: 144311420 Test: see these logs Change-Id: I1570cd4b377a62c863bc26c7b3148e04c2433a9c --- logd/LogBuffer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp index ba05a064f..834b20b6b 100644 --- a/logd/LogBuffer.cpp +++ b/logd/LogBuffer.cpp @@ -638,6 +638,8 @@ void LogBuffer::kickMe(LogTimeEntry* me, log_id_t id, unsigned long pruneRows) { if (stats.sizes(id) > (2 * log_buffer_size(id))) { // +100% // A misbehaving or slow reader has its connection // dropped if we hit too much memory pressure. + android::prdebug("Kicking blocked reader, pid %d, from LogBuffer::kickMe()\n", + me->mClient->getPid()); me->release_Locked(); } else if (me->mTimeout.tv_sec || me->mTimeout.tv_nsec) { // Allow a blocked WRAP timeout reader to @@ -645,6 +647,9 @@ void LogBuffer::kickMe(LogTimeEntry* me, log_id_t id, unsigned long pruneRows) { me->triggerReader_Locked(); } else { // tell slow reader to skip entries to catch up + android::prdebug( + "Skipping %lu entries from slow reader, pid %d, from LogBuffer::kickMe()\n", + pruneRows, me->mClient->getPid()); me->triggerSkip_Locked(id, pruneRows); } } @@ -1051,6 +1056,9 @@ bool LogBuffer::clear(log_id_t id, uid_t uid) { LogTimeEntry* entry = times->get(); // Killer punch if (entry->isWatching(id)) { + android::prdebug( + "Kicking blocked reader, pid %d, from LogBuffer::clear()\n", + entry->mClient->getPid()); entry->release_Locked(); } times++;