summaryrefslogtreecommitdiff
path: root/services/java/com
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2021-03-17 09:20:01 -0700
committerJosh Gao <jmgao@google.com>2021-05-19 14:29:36 -0700
commita6596c9925bdb7fead7ed31520bee7d05728c74d (patch)
tree78e716c3e4febcbe33b447a88583b7055afcdd67 /services/java/com
parent92c4b3d31d1d09d5d5c5589926e7f5520ce5062a (diff)
fdtrack: add stats logging.
Bug: http://b/183008833 Bug: http://b/183018597 Test: adb shell 'setprop persist.sys.debug.fdtrack_interval 10; stop; start' && statsd_testdrive 352 Change-Id: Ibc2293f8f1c7f0f29a166ac8dc93afc8dfd8b7de Merged-In: Ibc2293f8f1c7f0f29a166ac8dc93afc8dfd8b7de (cherry picked from commit 53731ea9ab0c131fb51e891946a17895571973d1)
Diffstat (limited to 'services/java/com')
-rw-r--r--services/java/com/android/server/SystemServer.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 7e718e52b7a0..ad89e96c7438 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -546,6 +546,8 @@ public final class SystemServer implements Dumpable {
new Thread(() -> {
boolean enabled = false;
+ long nextWrite = 0;
+
while (true) {
int maxFd = getMaxFd();
if (maxFd > enableThreshold) {
@@ -556,12 +558,30 @@ public final class SystemServer implements Dumpable {
if (maxFd > enableThreshold && !enabled) {
Slog.i("System", "fdtrack enable threshold reached, enabling");
+ FrameworkStatsLog.write(FrameworkStatsLog.FDTRACK_EVENT_OCCURRED,
+ FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__ENABLED,
+ maxFd);
+
System.loadLibrary("fdtrack");
enabled = true;
} else if (maxFd > abortThreshold) {
Slog.i("System", "fdtrack abort threshold reached, dumping and aborting");
+ FrameworkStatsLog.write(FrameworkStatsLog.FDTRACK_EVENT_OCCURRED,
+ FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__ABORTING,
+ maxFd);
+
dumpHprof();
fdtrackAbort();
+ } else {
+ // Limit this to once per hour.
+ long now = SystemClock.elapsedRealtime();
+ if (now > nextWrite) {
+ nextWrite = now + 60 * 60 * 1000;
+ FrameworkStatsLog.write(FrameworkStatsLog.FDTRACK_EVENT_OCCURRED,
+ enabled ? FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__ENABLED
+ : FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__DISABLED,
+ maxFd);
+ }
}
try {