Loading core/java/android/os/Process.java +2 −2 Original line number Diff line number Diff line Loading @@ -923,14 +923,14 @@ public class Process { * Adjust the swappiness level for a process. * * @param pid The process identifier to set. * @param is_increased Whether swappiness should be increased or default. * @param adj The process type for which swappiness to be set. * * @return Returns true if the underlying system supports this * feature, else false. * * {@hide} */ public static final native boolean setSwappiness(int pid, boolean is_increased); public static final native boolean setSwappiness(int pid, int adj); /** * Change this process's argv[0] parameter. This can be useful to show Loading core/jni/android_util_Process.cpp +20 −7 Original line number Diff line number Diff line Loading @@ -53,6 +53,13 @@ static pthread_key_t gBgKey = -1; // For both of these, err should be in the errno range (positive), not a status_t (negative) enum cgroup_task_id { CGROUP_TASK_PERSISTENT=-12, CGROUP_TASK_DEFAULT=-1, CGROUP_TASK_FOREGROUND=0, CGROUP_TASK_BACKGROUND=9 }; static void signalExceptionForPriorityError(JNIEnv* env, int err) { switch (err) { Loading Loading @@ -362,13 +369,19 @@ jboolean android_os_Process_setOomAdj(JNIEnv* env, jobject clazz, } jboolean android_os_Process_setSwappiness(JNIEnv *env, jobject clazz, jint pid, jboolean is_increased) jint pid, jint adj) { char text[64]; if (is_increased) { strcpy(text, "/sys/fs/cgroup/memory/sw/tasks"); } else { ALOGD("android_os_Process_setSwappiness start, pid = %d, adj = %d",pid,adj) ; if (adj == CGROUP_TASK_FOREGROUND) { strcpy(text, "/sys/fs/cgroup/memory/foreground/tasks"); } else if (adj == CGROUP_TASK_BACKGROUND){ strcpy(text, "/sys/fs/cgroup/memory/background/tasks"); } else if (adj == CGROUP_TASK_PERSISTENT){ strcpy(text, "/sys/fs/cgroup/memory/persistent/tasks"); } else if (adj == CGROUP_TASK_DEFAULT){ strcpy(text, "/sys/fs/cgroup/memory/tasks"); } Loading @@ -383,7 +396,7 @@ jboolean android_os_Process_setSwappiness(JNIEnv *env, jobject clazz, write(fd, text, strlen(text)); close(fd); } ALOGD("android_os_Process_setSwappiness end, pid = %d, adj = %d",pid,adj); return true; } Loading Loading @@ -1024,7 +1037,7 @@ static const JNINativeMethod methods[] = { {"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup}, {"getProcessGroup", "(I)I", (void*)android_os_Process_getProcessGroup}, {"setOomAdj", "(II)Z", (void*)android_os_Process_setOomAdj}, {"setSwappiness", "(IZ)Z", (void*)android_os_Process_setSwappiness}, {"setSwappiness", "(II)Z", (void*)android_os_Process_setSwappiness}, {"setArgV0", "(Ljava/lang/String;)V", (void*)android_os_Process_setArgV0}, {"setUid", "(I)I", (void*)android_os_Process_setUid}, {"setGid", "(I)I", (void*)android_os_Process_setGid}, Loading services/java/com/android/server/am/ActivityManagerService.java +15 −3 Original line number Diff line number Diff line Loading @@ -15377,6 +15377,20 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.curAdj != app.setAdj) { if (Process.setOomAdj(app.pid, app.curAdj)) { if (app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ) { Process.setSwappiness(app.pid,ProcessList.CACHED_APP_MIN_ADJ); } else if (app.curAdj == ProcessList.FOREGROUND_APP_ADJ) { Process.setSwappiness(app.pid,ProcessList.FOREGROUND_APP_ADJ); } else if (app.curAdj == ProcessList.PERSISTENT_PROC_ADJ) { Process.setSwappiness(app.pid,ProcessList.PERSISTENT_PROC_ADJ); } else if (app.curAdj == ProcessList.HOME_APP_ADJ) { Process.setSwappiness(app.pid,ProcessList.FOREGROUND_APP_ADJ); } else { Process.setSwappiness(app.pid,-1); } if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v( TAG, "Set " + app.pid + " " + app.processName + " adj " + app.curAdj + ": " + app.adjType); Loading Loading @@ -15415,8 +15429,6 @@ public final class ActivityManagerService extends ActivityManagerNative } } } Process.setSwappiness(app.pid, app.curSchedGroup <= Process.THREAD_GROUP_BG_NONINTERACTIVE); } } if (app.repProcState != app.curProcState) { Loading
core/java/android/os/Process.java +2 −2 Original line number Diff line number Diff line Loading @@ -923,14 +923,14 @@ public class Process { * Adjust the swappiness level for a process. * * @param pid The process identifier to set. * @param is_increased Whether swappiness should be increased or default. * @param adj The process type for which swappiness to be set. * * @return Returns true if the underlying system supports this * feature, else false. * * {@hide} */ public static final native boolean setSwappiness(int pid, boolean is_increased); public static final native boolean setSwappiness(int pid, int adj); /** * Change this process's argv[0] parameter. This can be useful to show Loading
core/jni/android_util_Process.cpp +20 −7 Original line number Diff line number Diff line Loading @@ -53,6 +53,13 @@ static pthread_key_t gBgKey = -1; // For both of these, err should be in the errno range (positive), not a status_t (negative) enum cgroup_task_id { CGROUP_TASK_PERSISTENT=-12, CGROUP_TASK_DEFAULT=-1, CGROUP_TASK_FOREGROUND=0, CGROUP_TASK_BACKGROUND=9 }; static void signalExceptionForPriorityError(JNIEnv* env, int err) { switch (err) { Loading Loading @@ -362,13 +369,19 @@ jboolean android_os_Process_setOomAdj(JNIEnv* env, jobject clazz, } jboolean android_os_Process_setSwappiness(JNIEnv *env, jobject clazz, jint pid, jboolean is_increased) jint pid, jint adj) { char text[64]; if (is_increased) { strcpy(text, "/sys/fs/cgroup/memory/sw/tasks"); } else { ALOGD("android_os_Process_setSwappiness start, pid = %d, adj = %d",pid,adj) ; if (adj == CGROUP_TASK_FOREGROUND) { strcpy(text, "/sys/fs/cgroup/memory/foreground/tasks"); } else if (adj == CGROUP_TASK_BACKGROUND){ strcpy(text, "/sys/fs/cgroup/memory/background/tasks"); } else if (adj == CGROUP_TASK_PERSISTENT){ strcpy(text, "/sys/fs/cgroup/memory/persistent/tasks"); } else if (adj == CGROUP_TASK_DEFAULT){ strcpy(text, "/sys/fs/cgroup/memory/tasks"); } Loading @@ -383,7 +396,7 @@ jboolean android_os_Process_setSwappiness(JNIEnv *env, jobject clazz, write(fd, text, strlen(text)); close(fd); } ALOGD("android_os_Process_setSwappiness end, pid = %d, adj = %d",pid,adj); return true; } Loading Loading @@ -1024,7 +1037,7 @@ static const JNINativeMethod methods[] = { {"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup}, {"getProcessGroup", "(I)I", (void*)android_os_Process_getProcessGroup}, {"setOomAdj", "(II)Z", (void*)android_os_Process_setOomAdj}, {"setSwappiness", "(IZ)Z", (void*)android_os_Process_setSwappiness}, {"setSwappiness", "(II)Z", (void*)android_os_Process_setSwappiness}, {"setArgV0", "(Ljava/lang/String;)V", (void*)android_os_Process_setArgV0}, {"setUid", "(I)I", (void*)android_os_Process_setUid}, {"setGid", "(I)I", (void*)android_os_Process_setGid}, Loading
services/java/com/android/server/am/ActivityManagerService.java +15 −3 Original line number Diff line number Diff line Loading @@ -15377,6 +15377,20 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.curAdj != app.setAdj) { if (Process.setOomAdj(app.pid, app.curAdj)) { if (app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ) { Process.setSwappiness(app.pid,ProcessList.CACHED_APP_MIN_ADJ); } else if (app.curAdj == ProcessList.FOREGROUND_APP_ADJ) { Process.setSwappiness(app.pid,ProcessList.FOREGROUND_APP_ADJ); } else if (app.curAdj == ProcessList.PERSISTENT_PROC_ADJ) { Process.setSwappiness(app.pid,ProcessList.PERSISTENT_PROC_ADJ); } else if (app.curAdj == ProcessList.HOME_APP_ADJ) { Process.setSwappiness(app.pid,ProcessList.FOREGROUND_APP_ADJ); } else { Process.setSwappiness(app.pid,-1); } if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v( TAG, "Set " + app.pid + " " + app.processName + " adj " + app.curAdj + ": " + app.adjType); Loading Loading @@ -15415,8 +15429,6 @@ public final class ActivityManagerService extends ActivityManagerNative } } } Process.setSwappiness(app.pid, app.curSchedGroup <= Process.THREAD_GROUP_BG_NONINTERACTIVE); } } if (app.repProcState != app.curProcState) {