binder: Increase RPC backlog to 50.
Right now, we create all threads at once, making accept4 slow.
To avoid hanging the client, the backlog is increased to a large number.
Once we create threads dynamically & lazily, the backlog can be reduced
to 1.
In an experiment, `time aservice list` reduces from 4 minutes to 30
seconds, a 8x boost.
Bug: 189955605
Bug: 190868305
Test: `time aservice list` is significantly faster
Change-Id: I4fa4d62149891ab62cbaf9f688bf798e4faf0189
diff --git a/libs/binder/RpcServer.cpp b/libs/binder/RpcServer.cpp
index 2a87ae4..555c5ed 100644
--- a/libs/binder/RpcServer.cpp
+++ b/libs/binder/RpcServer.cpp
@@ -347,7 +347,11 @@
return false;
}
- if (0 != TEMP_FAILURE_RETRY(listen(serverFd.get(), 1 /*backlog*/))) {
+ // Right now, we create all threads at once, making accept4 slow. To avoid hanging the client,
+ // the backlog is increased to a large number.
+ // TODO(b/189955605): Once we create threads dynamically & lazily, the backlog can be reduced
+ // to 1.
+ if (0 != TEMP_FAILURE_RETRY(listen(serverFd.get(), 50 /*backlog*/))) {
int savedErrno = errno;
ALOGE("Could not listen socket at %s: %s", addr.toString().c_str(), strerror(savedErrno));
return false;