summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorV S Ganga VaraPrasad (VARA) Adabala <quic_vadabala@quicinc.com>2022-04-26 00:31:28 +0530
committerV S Ganga VaraPrasad (VARA) Adabala <quic_vadabala@quicinc.com>2022-04-26 00:31:28 +0530
commitad3b7b30caf2b6d10ab2cba3b8cd84684c21e501 (patch)
treedd98ac42b7f7f7e1d2d53e3cec9cdc494617bee5 /services
parenta29d8a9086342b784b860a99ea368b097d822a85 (diff)
Perf:Fix the issue that activity boost duration abnormal
Change-Id: Iba024f11efa49d9cf7e5201667bb01319537553f CRs-Fixed: 3173551
Diffstat (limited to 'services')
-rwxr-xr-x[-rw-r--r--]services/core/java/com/android/server/wm/ActivityRecord.java6
-rwxr-xr-x[-rw-r--r--]services/core/java/com/android/server/wm/ActivityStarter.java8
2 files changed, 14 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 7f3c733ec33e..0c10316e9c43 100644..100755
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -6240,6 +6240,12 @@ public final class ActivityRecord extends WindowToken implements WindowManagerSe
/** Called when the windows associated app window container are drawn. */
private void onWindowsDrawn(long timestampNs) {
+ if (mPerf != null && perfActivityBoostHandler > 0) {
+ mPerf.perfLockReleaseHandler(perfActivityBoostHandler);
+ perfActivityBoostHandler = -1;
+ } else if (perfActivityBoostHandler > 0) {
+ Slog.w(TAG, "activity boost didn't release as expected");
+ }
final TransitionInfoSnapshot info = mTaskSupervisor
.getActivityMetricsLogger().notifyWindowsDrawn(this, timestampNs);
final boolean validInfo = info != null;
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 6c57bc0904a2..d6f93ce491b3 100644..100755
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -1783,6 +1783,10 @@ class ActivityStarter {
BoostFramework.VENDOR_HINT_FIRST_LAUNCH_BOOST, packageName,
-1, BoostFramework.Launch.ACTIVITY_LAUNCH_BOOST, 1, pkgType);
} else {
+ if (mStartActivity.perfActivityBoostHandler > 0) {
+ Slog.i(TAG, "Activity boosted, release it firstly");
+ mPerf.perfLockReleaseHandler(mStartActivity.perfActivityBoostHandler);
+ }
mStartActivity.perfActivityBoostHandler =
mPerf.perfHint(BoostFramework.VENDOR_HINT_FIRST_LAUNCH_BOOST,
packageName, -1, BoostFramework.Launch.BOOST_V1);
@@ -2834,6 +2838,10 @@ class ActivityStarter {
BoostFramework.VENDOR_HINT_FIRST_LAUNCH_BOOST, packageName,
-1, BoostFramework.Launch.ACTIVITY_LAUNCH_BOOST, 1, pkgType);
} else {
+ if (mStartActivity.perfActivityBoostHandler > 0) {
+ Slog.i(TAG, "Activity boosted, release it firstly");
+ mPerf.perfLockReleaseHandler(mStartActivity.perfActivityBoostHandler);
+ }
mStartActivity.perfActivityBoostHandler =
mPerf.perfHint(BoostFramework.VENDOR_HINT_FIRST_LAUNCH_BOOST,
packageName, -1, BoostFramework.Launch.BOOST_V1);