diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 2d443a325182..7193a742e032 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3004,6 +3004,16 @@ public class ActivityManagerService extends IActivityManager.Stub Watchdog.getInstance().addMonitor(this); Watchdog.getInstance().addThread(mHandler); + + // bind background thread to little cores + // this is expected to fail inside of framework tests because apps can't touch cpusets directly + try { + Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), + Process.THREAD_GROUP_BG_NONINTERACTIVE); + } catch (Exception e) { + Slog.w(TAG, "Setting background thread cpuset failed"); + } + } protected ActivityStackSupervisor createStackSupervisor() { @@ -12650,6 +12660,9 @@ public class ActivityManagerService extends IActivityManager.Stub if (!mBooted && !mBooting && userId == UserHandle.USER_SYSTEM && (info.flags & PERSISTENT_MASK) == PERSISTENT_MASK) { + // The system process is initialized to SCHED_GROUP_DEFAULT in init.rc. + r.curSchedGroup = ProcessList.SCHED_GROUP_DEFAULT; + r.setSchedGroup = ProcessList.SCHED_GROUP_DEFAULT; r.persistent = true; r.maxAdj = ProcessList.PERSISTENT_PROC_ADJ; } |