Merge "fdtrack: add stats logging." into sc-dev

This commit is contained in:
Josh Gao
2021-05-20 21:51:30 +00:00
committed by Android (Google) Code Review

View File

@@ -546,6 +546,8 @@ public final class SystemServer implements Dumpable {
new Thread(() -> { new Thread(() -> {
boolean enabled = false; boolean enabled = false;
long nextWrite = 0;
while (true) { while (true) {
int maxFd = getMaxFd(); int maxFd = getMaxFd();
if (maxFd > enableThreshold) { if (maxFd > enableThreshold) {
@@ -556,12 +558,30 @@ public final class SystemServer implements Dumpable {
if (maxFd > enableThreshold && !enabled) { if (maxFd > enableThreshold && !enabled) {
Slog.i("System", "fdtrack enable threshold reached, enabling"); Slog.i("System", "fdtrack enable threshold reached, enabling");
FrameworkStatsLog.write(FrameworkStatsLog.FDTRACK_EVENT_OCCURRED,
FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__ENABLED,
maxFd);
System.loadLibrary("fdtrack"); System.loadLibrary("fdtrack");
enabled = true; enabled = true;
} else if (maxFd > abortThreshold) { } else if (maxFd > abortThreshold) {
Slog.i("System", "fdtrack abort threshold reached, dumping and aborting"); Slog.i("System", "fdtrack abort threshold reached, dumping and aborting");
FrameworkStatsLog.write(FrameworkStatsLog.FDTRACK_EVENT_OCCURRED,
FrameworkStatsLog.FDTRACK_EVENT_OCCURRED__EVENT__ABORTING,
maxFd);
dumpHprof(); dumpHprof();
fdtrackAbort(); 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 { try {