OSDN Git Service

Set android.display thread to top-app cpusets and schedtune group
authorJoel Fernandes <joelaf@google.com>
Tue, 4 Apr 2017 23:32:15 +0000 (16:32 -0700)
committerJoel Fernandes <joelaf@google.com>
Thu, 6 Apr 2017 03:25:43 +0000 (20:25 -0700)
commit474d311cb098e86c078c3f615e1161e2854f1847
tree53c53a24e076a245425be4fcb17d8f9e8dbbdcee
parent55ef06b2f481731c98891138d1d18f91c281db6d
Set android.display thread to top-app cpusets and schedtune group

android.display being in the foreground cpuset group is an issue. As
seen on M/S, during heavily CPU load it is not given core 3 even though
it might be free and causes jank. This patch adds the thread to the
top-app group to ensure it is placed on all cores during scheduling
decisions.

Doing this required a couple of changes:
- new API to set per-thread cpusets
- changes to DisplayManagerService to set the thread to top-app group
- changes to SystemServer to set the policy toward the end, as doing it
  during start of the DisplayManagerService was in issue (issue being
  SystemServer calls setSystemProcess.. -> setProcessGroup which overrides
  the group settings for threads in the system server process, including
  android.display)

Bug: 36631902
Test: Boot and make sure android.display thread is in the top-app group

Change-Id: Icc394ea0ffcf159d11728ad38de114234a29d20f
Signed-off-by: Joel Fernandes <joelaf@google.com>
core/java/android/os/Process.java
core/jni/android_util_Process.cpp
services/core/java/com/android/server/display/DisplayManagerService.java
services/java/com/android/server/SystemServer.java