Merge "Treat SystemServer as jank perceptible under jank_perceptible_narrow." into main
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 7b9ec4a..2d7ed46 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -3959,10 +3959,20 @@
/** Converts a process state to a VM process state. */
private static int toVmProcessState(int processState) {
- final int state = ActivityManager.isProcStateJankPerceptible(processState)
- ? VM_PROCESS_STATE_JANK_PERCEPTIBLE
- : VM_PROCESS_STATE_JANK_IMPERCEPTIBLE;
- return state;
+ if (ActivityManager.isProcStateJankPerceptible(processState)) {
+ return VM_PROCESS_STATE_JANK_PERCEPTIBLE;
+ }
+
+ if (Flags.jankPerceptibleNarrow()) {
+ // Unlike other persistent processes, system server is often on
+ // the critical path for application startup. Mark it explicitly
+ // as jank perceptible regardless of processState.
+ if (isSystem()) {
+ return VM_PROCESS_STATE_JANK_PERCEPTIBLE;
+ }
+ }
+
+ return VM_PROCESS_STATE_JANK_IMPERCEPTIBLE;
}
/** Update VM state based on ActivityManager.PROCESS_STATE_* constants. */