logd: syscall optimization
- prset(PR_SET_NAME) call once
- No need to call getuid(), should be AID_LOGD
Change-Id: I4dde0b178bc84e711b355cd7677b0dbf905a0634
diff --git a/logd/LogListener.cpp b/logd/LogListener.cpp
index fc9e30f..3b4ef88 100644
--- a/logd/LogListener.cpp
+++ b/logd/LogListener.cpp
@@ -23,6 +23,7 @@
#include <cutils/sockets.h>
#include <log/logger.h>
+#include <private/android_filesystem_config.h>
#include <private/android_logger.h>
#include "LogListener.h"
@@ -34,7 +35,11 @@
{ }
bool LogListener::onDataAvailable(SocketClient *cli) {
- prctl(PR_SET_NAME, "logd.writer");
+ static bool name_set;
+ if (!name_set) {
+ prctl(PR_SET_NAME, "logd.writer");
+ name_set = true;
+ }
char buffer[sizeof_log_id_t + sizeof(uint16_t) + sizeof(log_time)
+ LOGGER_ENTRY_MAX_PAYLOAD];
@@ -75,7 +80,7 @@
return false;
}
- if (cred->uid == getuid()) {
+ if (cred->uid == AID_LOGD) {
// ignore log messages we send to ourself.
// Such log messages are often generated by libraries we depend on
// which use standard Android logging.