LOCAL_CFLAGS += -DENABLE_CPUSETS
endif
-ifneq ($(ENABLE_SCHED_BOOST),)
- LOCAL_CFLAGS += -DENABLE_SCHED_BOOST
-endif
-
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
LOCAL_CFLAGS += -DU_USING_ICU_NAMESPACE=0
}
}
-#ifdef ENABLE_SCHED_BOOST
-static void SetForkLoad(bool boost) {
- // set scheduler knob to boost forked processes
- pid_t currentPid = getpid();
- // fits at most "/proc/XXXXXXX/sched_init_task_load\0"
- char schedPath[35];
- snprintf(schedPath, sizeof(schedPath), "/proc/%u/sched_init_task_load", currentPid);
- int schedBoostFile = open(schedPath, O_WRONLY);
- if (schedBoostFile < 0) {
- ALOGW("Unable to set zygote scheduler boost");
- return;
- }
- if (boost) {
- write(schedBoostFile, "100\0", 4);
- } else {
- write(schedBoostFile, "0\0", 2);
- }
- close(schedBoostFile);
-}
-#endif
-
// The list of open zygote file descriptors.
static FileDescriptorTable* gOpenFdTable = NULL;
jstring instructionSet, jstring dataDir) {
SetSigChldHandler();
-#ifdef ENABLE_SCHED_BOOST
- SetForkLoad(true);
-#endif
-
// Close any logging related FDs before we start evaluating the list of
// file descriptors.
__android_log_close();
}
} else if (pid > 0) {
// the parent process
-
-#ifdef ENABLE_SCHED_BOOST
- // unset scheduler knob
- SetForkLoad(false);
-#endif
-
}
return pid;
}