Log when sync exemptions occur.
Bug: 226657057
Test: statsd_testdrive 468
Change-Id: Ib5edb391fc545b7eb540a67f319c0e74b756bb08
Merged-In: Ib5edb391fc545b7eb540a67f319c0e74b756bb08
(cherry picked from commit dd6f2bb85e)
This commit is contained in:
@@ -78,6 +78,7 @@ import com.android.internal.os.BackgroundThread;
|
||||
import com.android.internal.os.BinderDeathDispatcher;
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.DumpUtils;
|
||||
import com.android.internal.util.FrameworkStatsLog;
|
||||
import com.android.internal.util.IndentingPrintWriter;
|
||||
import com.android.server.LocalServices;
|
||||
import com.android.server.SystemService;
|
||||
@@ -1542,11 +1543,62 @@ public final class ContentService extends IContentService.Stub {
|
||||
return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET_WITH_TEMP;
|
||||
}
|
||||
if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND || isUidActive) {
|
||||
FrameworkStatsLog.write(FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED,
|
||||
callingUid, getProcStateForStatsd(procState), isUidActive);
|
||||
return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET;
|
||||
}
|
||||
return ContentResolver.SYNC_EXEMPTION_NONE;
|
||||
}
|
||||
|
||||
private int getProcStateForStatsd(int procState) {
|
||||
switch (procState) {
|
||||
case ActivityManager.PROCESS_STATE_UNKNOWN:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN;
|
||||
case ActivityManager.PROCESS_STATE_PERSISTENT:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT;
|
||||
case ActivityManager.PROCESS_STATE_PERSISTENT_UI:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT_UI;
|
||||
case ActivityManager.PROCESS_STATE_TOP:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP;
|
||||
case ActivityManager.PROCESS_STATE_BOUND_TOP:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_TOP;
|
||||
case ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__FOREGROUND_SERVICE;
|
||||
case ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE:
|
||||
return FrameworkStatsLog
|
||||
.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_FOREGROUND_SERVICE;
|
||||
case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_FOREGROUND;
|
||||
case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_BACKGROUND;
|
||||
case ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TRANSIENT_BACKGROUND;
|
||||
case ActivityManager.PROCESS_STATE_BACKUP:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BACKUP;
|
||||
case ActivityManager.PROCESS_STATE_SERVICE:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__SERVICE;
|
||||
case ActivityManager.PROCESS_STATE_RECEIVER:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__RECEIVER;
|
||||
case ActivityManager.PROCESS_STATE_TOP_SLEEPING:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP_SLEEPING;
|
||||
case ActivityManager.PROCESS_STATE_HEAVY_WEIGHT:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__HEAVY_WEIGHT;
|
||||
case ActivityManager.PROCESS_STATE_LAST_ACTIVITY:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__LAST_ACTIVITY;
|
||||
case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY;
|
||||
case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT:
|
||||
return FrameworkStatsLog
|
||||
.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY_CLIENT;
|
||||
case ActivityManager.PROCESS_STATE_CACHED_RECENT:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_RECENT;
|
||||
case ActivityManager.PROCESS_STATE_CACHED_EMPTY:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_EMPTY;
|
||||
default:
|
||||
return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
@VisibleForTesting
|
||||
public static final class ObserverNode {
|
||||
|
||||
Reference in New Issue
Block a user