diff options
author | Libo Jin <quic_liboj@quicinc.com> | 2022-04-13 11:11:22 +0800 |
---|---|---|
committer | Libo Jin <quic_liboj@quicinc.com> | 2022-04-13 15:30:42 +0800 |
commit | c543e541bd9eea77be25c314f29a8ee0eb40f8e5 (patch) | |
tree | 74c5935ff0cbbd6c1551f60df96ba7588e26a8b7 /services | |
parent | 371884d0db9677af175774842899572727dc4d80 (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.java | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | services/core/java/com/android/server/wm/ActivityStarter.java | 8 |
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 606acf02eaa4..177aa61381c1 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.BOOST_V1, 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.BOOST_V1, 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); |