resolve merge conflicts of f062a2cd9eef32ac9458faee7d056c06f2f4168b to pi-dev-plus-aosp

am: be5235619f

Change-Id: I5ac401c518af4240bb56d867fd10771b3ea1d0a2
This commit is contained in:
Mark Salyzyn 2018-04-06 08:20:25 -07:00 committed by android-build-merger
commit 5cb238b41d
2 changed files with 27 additions and 18 deletions

View File

@ -3,8 +3,8 @@ cc_binary {
srcs: ["lmkd.c"],
shared_libs: [
"liblog",
"libcutils",
"liblog",
],
static_libs: [
"libstatslogc",

41
lmkd.c
View File

@ -29,8 +29,8 @@
#include <sys/eventfd.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/sysinfo.h>
#include <sys/types.h>
#include <unistd.h>
#include <cutils/properties.h>
@ -84,7 +84,7 @@
#define STRINGIFY_INTERNAL(x) #x
/* default to old in-kernel interface if no memory pressure events */
static int use_inkernel_interface = 1;
static bool use_inkernel_interface = true;
static bool has_inkernel_module;
/* memory pressure levels */
@ -338,8 +338,9 @@ static void cmd_procprio(LMKD_CTRL_PACKET packet) {
return;
}
if (use_inkernel_interface)
if (use_inkernel_interface) {
return;
}
if (params.oomadj >= 900) {
soft_limit_mult = 0;
@ -405,8 +406,9 @@ static void cmd_procprio(LMKD_CTRL_PACKET packet) {
static void cmd_procremove(LMKD_CTRL_PACKET packet) {
struct lmk_procremove params;
if (use_inkernel_interface)
if (use_inkernel_interface) {
return;
}
lmkd_pack_get_procremove(packet, &params);
pid_remove(params.pid);
@ -1235,21 +1237,28 @@ int main(int argc __unused, char **argv __unused) {
statslog_init(&log_ctx, &enable_stats_log);
#endif
// MCL_ONFAULT pins pages as they fault instead of loading
// everything immediately all at once. (Which would be bad,
// because as of this writing, we have a lot of mapped pages we
// never use.) Old kernels will see MCL_ONFAULT and fail with
// EINVAL; we ignore this failure.
//
// N.B. read the man page for mlockall. MCL_CURRENT | MCL_ONFAULT
// pins ⊆ MCL_CURRENT, converging to just MCL_CURRENT as we fault
// in pages.
if (mlockall(MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT) && errno != EINVAL)
ALOGW("mlockall failed: errno=%d", errno);
if (!init()) {
if (!use_inkernel_interface) {
/*
* MCL_ONFAULT pins pages as they fault instead of loading
* everything immediately all at once. (Which would be bad,
* because as of this writing, we have a lot of mapped pages we
* never use.) Old kernels will see MCL_ONFAULT and fail with
* EINVAL; we ignore this failure.
*
* N.B. read the man page for mlockall. MCL_CURRENT | MCL_ONFAULT
* pins MCL_CURRENT, converging to just MCL_CURRENT as we fault
* in pages.
*/
if (mlockall(MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT) && (errno != EINVAL)) {
ALOGW("mlockall failed %s", strerror(errno));
}
sched_setscheduler(0, SCHED_FIFO, &param);
if (!init())
}
mainloop();
}
#ifdef LMKD_LOG_STATS
statslog_destroy(&log_ctx);