Loading services/core/java/com/android/server/am/ActivityManagerService.java +7 −0 Original line number Diff line number Diff line Loading @@ -17793,6 +17793,13 @@ public class ActivityManagerService extends IActivityManager.Stub mCoreSettingsObserver.onChange(true); } /** * Reset the dropbox rate limiter */ void resetDropboxRateLimiter() { mDropboxRateLimiter.reset(); } /** * Kill processes for the user with id userId and that depend on the package named packageName */ services/core/java/com/android/server/am/ActivityManagerShellCommand.java +7 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,8 @@ final class ActivityManagerShellCommand extends ShellCommand { return runSetBgAbusiveUids(pw); case "list-bg-exemptions-config": return runListBgExemptionsConfig(pw); case "reset-dropbox-rate-limiter": return runResetDropboxRateLimiter(); default: return handleDefaultCommands(cmd); } Loading Loading @@ -3374,6 +3376,11 @@ final class ActivityManagerShellCommand extends ShellCommand { return 0; } int runResetDropboxRateLimiter() throws RemoteException { mInternal.resetDropboxRateLimiter(); return 0; } private Resources getResources(PrintWriter pw) throws RemoteException { // system resources does not contain all the device configuration, construct it manually. Configuration config = mInterface.getConfiguration(); Loading services/core/java/com/android/server/am/DropboxRateLimiter.java +11 −0 Original line number Diff line number Diff line Loading @@ -19,11 +19,13 @@ package com.android.server.am; import android.os.SystemClock; import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.Slog; import com.android.internal.annotations.GuardedBy; /** Rate limiter for adding errors into dropbox. */ public class DropboxRateLimiter { private static final String TAG = "DropboxRateLimiter"; // After RATE_LIMIT_ALLOWED_ENTRIES have been collected (for a single breakdown of // process/eventType) further entries will be rejected until RATE_LIMIT_BUFFER_DURATION has // elapsed, after which the current count for this breakdown will be reset. Loading Loading @@ -105,6 +107,15 @@ public class DropboxRateLimiter { mLastMapCleanUp = now; } /** Resets the rate limiter memory. */ void reset() { synchronized (mErrorClusterRecords) { mErrorClusterRecords.clear(); } mLastMapCleanUp = 0L; Slog.i(TAG, "Rate limiter reset."); } String errorKey(String eventType, String processName) { return eventType + processName; } Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +7 −0 Original line number Diff line number Diff line Loading @@ -17793,6 +17793,13 @@ public class ActivityManagerService extends IActivityManager.Stub mCoreSettingsObserver.onChange(true); } /** * Reset the dropbox rate limiter */ void resetDropboxRateLimiter() { mDropboxRateLimiter.reset(); } /** * Kill processes for the user with id userId and that depend on the package named packageName */
services/core/java/com/android/server/am/ActivityManagerShellCommand.java +7 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,8 @@ final class ActivityManagerShellCommand extends ShellCommand { return runSetBgAbusiveUids(pw); case "list-bg-exemptions-config": return runListBgExemptionsConfig(pw); case "reset-dropbox-rate-limiter": return runResetDropboxRateLimiter(); default: return handleDefaultCommands(cmd); } Loading Loading @@ -3374,6 +3376,11 @@ final class ActivityManagerShellCommand extends ShellCommand { return 0; } int runResetDropboxRateLimiter() throws RemoteException { mInternal.resetDropboxRateLimiter(); return 0; } private Resources getResources(PrintWriter pw) throws RemoteException { // system resources does not contain all the device configuration, construct it manually. Configuration config = mInterface.getConfiguration(); Loading
services/core/java/com/android/server/am/DropboxRateLimiter.java +11 −0 Original line number Diff line number Diff line Loading @@ -19,11 +19,13 @@ package com.android.server.am; import android.os.SystemClock; import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.Slog; import com.android.internal.annotations.GuardedBy; /** Rate limiter for adding errors into dropbox. */ public class DropboxRateLimiter { private static final String TAG = "DropboxRateLimiter"; // After RATE_LIMIT_ALLOWED_ENTRIES have been collected (for a single breakdown of // process/eventType) further entries will be rejected until RATE_LIMIT_BUFFER_DURATION has // elapsed, after which the current count for this breakdown will be reset. Loading Loading @@ -105,6 +107,15 @@ public class DropboxRateLimiter { mLastMapCleanUp = now; } /** Resets the rate limiter memory. */ void reset() { synchronized (mErrorClusterRecords) { mErrorClusterRecords.clear(); } mLastMapCleanUp = 0L; Slog.i(TAG, "Rate limiter reset."); } String errorKey(String eventType, String processName) { return eventType + processName; } Loading