Loading liblog/include/log/log_time.h +10 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ /* struct log_time is a wire-format variant of struct timespec */ #define NS_PER_SEC 1000000000ULL #define US_PER_SEC 1000000ULL #define MS_PER_SEC 1000ULL #ifndef __struct_log_time_defined #define __struct_log_time_defined Loading Loading @@ -148,6 +150,14 @@ struct log_time { uint64_t nsec() const { return static_cast<uint64_t>(tv_sec) * NS_PER_SEC + tv_nsec; } uint64_t usec() const { return static_cast<uint64_t>(tv_sec) * US_PER_SEC + tv_nsec / (NS_PER_SEC / US_PER_SEC); } uint64_t msec() const { return static_cast<uint64_t>(tv_sec) * MS_PER_SEC + tv_nsec / (NS_PER_SEC / MS_PER_SEC); } #ifdef _SYSTEM_CORE_INCLUDE_PRIVATE_ANDROID_LOGGER_H_ static const char default_format[]; Loading logd/LogBuffer.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -208,8 +208,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, if (!__android_log_is_loggable(prio, tag, ANDROID_LOG_VERBOSE)) { // Log traffic received to total pthread_mutex_lock(&mLogElementsLock); stats.add(elem); stats.subtract(elem); stats.addTotal(elem); pthread_mutex_unlock(&mLogElementsLock); delete elem; return -EACCES; Loading Loading @@ -320,8 +319,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pthread_mutex_unlock(&mLogElementsLock); return len; } stats.add(currentLast); stats.subtract(currentLast); stats.addTotal(currentLast); delete currentLast; swab = total; event->payload.data = htole32(swab); Loading @@ -337,8 +335,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, } } if (count) { stats.add(currentLast); stats.subtract(currentLast); stats.addTotal(currentLast); currentLast->setDropped(count); } droppedElements[log_id] = currentLast; Loading logd/LogStatistics.cpp +16 −5 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ #include <fcntl.h> #include <inttypes.h> #include <pwd.h> #include <stdio.h> #include <string.h> Loading Loading @@ -70,20 +71,30 @@ char* pidToName(pid_t pid) { } } void LogStatistics::addTotal(LogBufferElement* element) { if (element->getDropped()) return; log_id_t log_id = element->getLogId(); unsigned short size = element->getMsgLen(); mSizesTotal[log_id] += size; SizesTotal += size; ++mElementsTotal[log_id]; } void LogStatistics::add(LogBufferElement* element) { log_id_t log_id = element->getLogId(); unsigned short size = element->getMsgLen(); mSizes[log_id] += size; ++mElements[log_id]; if (element->getDropped()) { ++mDroppedElements[log_id]; } else { // When caller adding a chatty entry, they will have already // called add() and subtract() for each entry as they are // evaluated and trimmed, thus recording size and number of // elements, but we must recognize the manufactured dropped // entry as not contributing to the lifetime totals. if (element->getDropped()) { ++mDroppedElements[log_id]; } else { mSizesTotal[log_id] += size; SizesTotal += size; ++mElementsTotal[log_id]; Loading logd/LogStatistics.h +1 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,7 @@ class LogStatistics { enable = true; } void addTotal(LogBufferElement* entry); void add(LogBufferElement* entry); void subtract(LogBufferElement* entry); // entry->setDropped(1) must follow this call Loading Loading
liblog/include/log/log_time.h +10 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ /* struct log_time is a wire-format variant of struct timespec */ #define NS_PER_SEC 1000000000ULL #define US_PER_SEC 1000000ULL #define MS_PER_SEC 1000ULL #ifndef __struct_log_time_defined #define __struct_log_time_defined Loading Loading @@ -148,6 +150,14 @@ struct log_time { uint64_t nsec() const { return static_cast<uint64_t>(tv_sec) * NS_PER_SEC + tv_nsec; } uint64_t usec() const { return static_cast<uint64_t>(tv_sec) * US_PER_SEC + tv_nsec / (NS_PER_SEC / US_PER_SEC); } uint64_t msec() const { return static_cast<uint64_t>(tv_sec) * MS_PER_SEC + tv_nsec / (NS_PER_SEC / MS_PER_SEC); } #ifdef _SYSTEM_CORE_INCLUDE_PRIVATE_ANDROID_LOGGER_H_ static const char default_format[]; Loading
logd/LogBuffer.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -208,8 +208,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, if (!__android_log_is_loggable(prio, tag, ANDROID_LOG_VERBOSE)) { // Log traffic received to total pthread_mutex_lock(&mLogElementsLock); stats.add(elem); stats.subtract(elem); stats.addTotal(elem); pthread_mutex_unlock(&mLogElementsLock); delete elem; return -EACCES; Loading Loading @@ -320,8 +319,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pthread_mutex_unlock(&mLogElementsLock); return len; } stats.add(currentLast); stats.subtract(currentLast); stats.addTotal(currentLast); delete currentLast; swab = total; event->payload.data = htole32(swab); Loading @@ -337,8 +335,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, } } if (count) { stats.add(currentLast); stats.subtract(currentLast); stats.addTotal(currentLast); currentLast->setDropped(count); } droppedElements[log_id] = currentLast; Loading
logd/LogStatistics.cpp +16 −5 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ #include <fcntl.h> #include <inttypes.h> #include <pwd.h> #include <stdio.h> #include <string.h> Loading Loading @@ -70,20 +71,30 @@ char* pidToName(pid_t pid) { } } void LogStatistics::addTotal(LogBufferElement* element) { if (element->getDropped()) return; log_id_t log_id = element->getLogId(); unsigned short size = element->getMsgLen(); mSizesTotal[log_id] += size; SizesTotal += size; ++mElementsTotal[log_id]; } void LogStatistics::add(LogBufferElement* element) { log_id_t log_id = element->getLogId(); unsigned short size = element->getMsgLen(); mSizes[log_id] += size; ++mElements[log_id]; if (element->getDropped()) { ++mDroppedElements[log_id]; } else { // When caller adding a chatty entry, they will have already // called add() and subtract() for each entry as they are // evaluated and trimmed, thus recording size and number of // elements, but we must recognize the manufactured dropped // entry as not contributing to the lifetime totals. if (element->getDropped()) { ++mDroppedElements[log_id]; } else { mSizesTotal[log_id] += size; SizesTotal += size; ++mElementsTotal[log_id]; Loading
logd/LogStatistics.h +1 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,7 @@ class LogStatistics { enable = true; } void addTotal(LogBufferElement* entry); void add(LogBufferElement* entry); void subtract(LogBufferElement* entry); // entry->setDropped(1) must follow this call Loading