lmkd: mlock all memory
Use mlockall(MCL_FUTURE) to lock all lmkd pages in memory. This
avoids lmkd thrashing when the system is low on memory.
As a side effect, it will also keep the .text sections of liblog, libm,
libc, and libprocessgroup in memory at all times.
Bug: 16236289
Change-Id: Idd70557efa4b1e14bc86f14220672a30f6c956e3
diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c
index 1aeb182..a952855 100644
--- a/lmkd/lmkd.c
+++ b/lmkd/lmkd.c
@@ -26,6 +26,7 @@
#include <sys/cdefs.h>
#include <sys/epoll.h>
#include <sys/eventfd.h>
+#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
@@ -747,6 +748,7 @@
}
int main(int argc __unused, char **argv __unused) {
+ mlockall(MCL_FUTURE);
if (!init())
mainloop();