Merge "Don't reset the reported proc state while cleaning up the process" into sc-dev

This commit is contained in:
Jing Ji
2021-07-23 00:01:25 +00:00
committed by Android (Google) Code Review
3 changed files with 14 additions and 8 deletions

View File

@@ -430,7 +430,13 @@ public final class AppExitInfoTracker {
final ApplicationExitInfo info = new ApplicationExitInfo(raw); final ApplicationExitInfo info = new ApplicationExitInfo(raw);
final String[] packages = raw.getPackageList(); final String[] packages = raw.getPackageList();
final int uid = raw.getPackageUid(); int uid = raw.getRealUid();
if (UserHandle.isIsolated(uid)) {
Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
if (k != null) {
uid = k;
}
}
for (int i = 0; i < packages.length; i++) { for (int i = 0; i < packages.length; i++) {
addExitInfoInnerLocked(packages[i], uid, info); addExitInfoInnerLocked(packages[i], uid, info);
} }
@@ -833,14 +839,14 @@ public final class AppExitInfoTracker {
pw.println(prefix + "package: " + packageName); pw.println(prefix + "package: " + packageName);
int size = array.size(); int size = array.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
pw.println(prefix + " Historical Process Exit for userId=" + array.keyAt(i)); pw.println(prefix + " Historical Process Exit for uid=" + array.keyAt(i));
array.valueAt(i).dumpLocked(pw, prefix + " ", sdf); array.valueAt(i).dumpLocked(pw, prefix + " ", sdf);
} }
} }
@GuardedBy("mLock") @GuardedBy("mLock")
private void addExitInfoInnerLocked(String packageName, int userId, ApplicationExitInfo info) { private void addExitInfoInnerLocked(String packageName, int uid, ApplicationExitInfo info) {
AppExitInfoContainer container = mData.get(packageName, userId); AppExitInfoContainer container = mData.get(packageName, uid);
if (container == null) { if (container == null) {
container = new AppExitInfoContainer(mAppExitInfoHistoryListSize); container = new AppExitInfoContainer(mAppExitInfoHistoryListSize);
if (UserHandle.isIsolated(info.getRealUid())) { if (UserHandle.isIsolated(info.getRealUid())) {
@@ -851,7 +857,7 @@ public final class AppExitInfoTracker {
} else { } else {
container.mUid = info.getRealUid(); container.mUid = info.getRealUid();
} }
mData.put(packageName, userId, container); mData.put(packageName, uid, container);
} }
container.addExitInfoLocked(info); container.addExitInfoLocked(info);
} }
@@ -997,7 +1003,7 @@ public final class AppExitInfoTracker {
info.setPackageList(app.getPackageList()); info.setPackageList(app.getPackageList());
info.setReason(ApplicationExitInfo.REASON_UNKNOWN); info.setReason(ApplicationExitInfo.REASON_UNKNOWN);
info.setStatus(0); info.setStatus(0);
info.setImportance(procStateToImportance(app.mState.getSetProcState())); info.setImportance(procStateToImportance(app.mState.getReportedProcState()));
info.setPss(app.mProfile.getLastPss()); info.setPss(app.mProfile.getLastPss());
info.setRss(app.mProfile.getLastRss()); info.setRss(app.mProfile.getLastRss());
info.setTimestamp(timestamp); info.setTimestamp(timestamp);

View File

@@ -1086,7 +1086,7 @@ final class ProcessStateRecord {
mCurRawAdj = mSetRawAdj = mCurAdj = mSetAdj = mVerifiedAdj = ProcessList.INVALID_ADJ; mCurRawAdj = mSetRawAdj = mCurAdj = mSetAdj = mVerifiedAdj = ProcessList.INVALID_ADJ;
mCurCapability = mSetCapability = PROCESS_CAPABILITY_NONE; mCurCapability = mSetCapability = PROCESS_CAPABILITY_NONE;
mCurSchedGroup = mSetSchedGroup = ProcessList.SCHED_GROUP_BACKGROUND; mCurSchedGroup = mSetSchedGroup = ProcessList.SCHED_GROUP_BACKGROUND;
mCurProcState = mRepProcState = mCurRawProcState = mSetProcState = mAllowStartFgsState = mCurProcState = mCurRawProcState = mSetProcState = mAllowStartFgsState =
PROCESS_STATE_NONEXISTENT; PROCESS_STATE_NONEXISTENT;
} }

View File

@@ -1003,7 +1003,7 @@ public class ApplicationExitInfoTest {
dummyPackageName, dummyClassName), "", definingUid)); dummyPackageName, dummyClassName), "", definingUid));
} }
app.mServices.setConnectionGroup(connectionGroup); app.mServices.setConnectionGroup(connectionGroup);
app.mState.setSetProcState(procState); app.mState.setReportedProcState(procState);
app.mProfile.setLastMemInfo(spy(new Debug.MemoryInfo())); app.mProfile.setLastMemInfo(spy(new Debug.MemoryInfo()));
app.mProfile.setLastPss(pss); app.mProfile.setLastPss(pss);
app.mProfile.setLastRss(rss); app.mProfile.setLastRss(rss);