From 581edc1b6c3799238cfb674dfddb97db44f2818e Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Wed, 20 Nov 2013 13:38:52 -0800 Subject: [PATCH] set /proc/sys/net/unix/max_dgram_qlen to large value - init: set /proc/sys/net/unix/max_dgram_qlen to 300 - libsysutils: Add listen backlog argument to startListener - logd: set listen backlog to 300 Change-Id: Id6d37d6c937ba2d221e76258d89c9516619caeec --- include/sysutils/SocketListener.h | 1 + libsysutils/src/SocketListener.cpp | 6 +++++- logd/main.cpp | 3 ++- rootdir/init.rc | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/sysutils/SocketListener.h b/include/sysutils/SocketListener.h index c204a0fc3..bc93b8635 100644 --- a/include/sysutils/SocketListener.h +++ b/include/sysutils/SocketListener.h @@ -38,6 +38,7 @@ public: virtual ~SocketListener(); int startListener(); + int startListener(int backlog); int stopListener(); void sendBroadcast(int code, const char *msg, bool addErrno); diff --git a/libsysutils/src/SocketListener.cpp b/libsysutils/src/SocketListener.cpp index 5c752066c..527a6a0a3 100644 --- a/libsysutils/src/SocketListener.cpp +++ b/libsysutils/src/SocketListener.cpp @@ -70,6 +70,10 @@ SocketListener::~SocketListener() { } int SocketListener::startListener() { + return startListener(4); +} + +int SocketListener::startListener(int backlog) { if (!mSocketName && mSock == -1) { SLOGE("Failed to start unbound listener"); @@ -84,7 +88,7 @@ int SocketListener::startListener() { SLOGV("got mSock = %d for %s", mSock, mSocketName); } - if (mListen && listen(mSock, 4) < 0) { + if (mListen && listen(mSock, backlog) < 0) { SLOGE("Unable to listen on socket (%s)", strerror(errno)); return -1; } else if (!mListen) diff --git a/logd/main.cpp b/logd/main.cpp index 18912060f..6216b95c3 100644 --- a/logd/main.cpp +++ b/logd/main.cpp @@ -105,7 +105,8 @@ int main() { // and LogReader is notified to send updates to connected clients. LogListener *swl = new LogListener(logBuf, reader); - if (swl->startListener()) { + // Backlog and /proc/sys/net/unix/max_dgram_qlen set to large value + if (swl->startListener(300)) { exit(1); } diff --git a/rootdir/init.rc b/rootdir/init.rc index 9975368c2..ffbc9fa61 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -100,6 +100,7 @@ loglevel 3 write /proc/sys/kernel/dmesg_restrict 1 write /proc/sys/vm/mmap_min_addr 32768 write /proc/sys/net/ipv4/ping_group_range "0 2147483647" + write /proc/sys/net/unix/max_dgram_qlen 300 write /proc/sys/kernel/sched_rt_runtime_us 950000 write /proc/sys/kernel/sched_rt_period_us 1000000