From 6c37b32a26e119df3ad7c2b178f53721bb26eb7d Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Tue, 22 May 2012 16:07:46 -0700 Subject: [PATCH] Modify logging to debug this issue Logging exec time on startUsingNetworkFeature as we've had some reports suggesting it's causing ANRs. Remove some logging from NDC so it's local log is more useful. bug:6492166 Change-Id: I258ff6c59bff2c65935242d50496d84720c5d493 --- .../java/com/android/server/NativeDaemonConnector.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java index a15d3bbb4c..f71125a839 100644 --- a/services/java/com/android/server/NativeDaemonConnector.java +++ b/services/java/com/android/server/NativeDaemonConnector.java @@ -58,6 +58,7 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo private AtomicInteger mSequenceNumber; private static final int DEFAULT_TIMEOUT = 1 * 60 * 1000; /* 1 minute */ + private static final long WARN_EXECUTE_DELAY_MS = 500; /* .5 sec */ /** Lock held whenever communicating with native daemon. */ private final Object mDaemonLock = new Object(); @@ -148,7 +149,6 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo mCallbackHandler.sendMessage(mCallbackHandler.obtainMessage( event.getCode(), event.getRawEvent())); } else { - log("POST<- {" + rawEvent + "}"); mResponseQueue.add(event.getCmdNumber(), event); } } catch (IllegalArgumentException e) { @@ -300,6 +300,7 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo final int sequenceNumber = mSequenceNumber.incrementAndGet(); final StringBuilder cmdBuilder = new StringBuilder(Integer.toString(sequenceNumber)).append(' '); + final long startTime = SystemClock.elapsedRealtime(); makeCommand(cmdBuilder, cmd, args); @@ -332,6 +333,11 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo events.add(event); } while (event.isClassContinue()); + final long endTime = SystemClock.elapsedRealtime(); + if (endTime - startTime > WARN_EXECUTE_DELAY_MS) { + loge("NDC Command {" + logCmd + "} took too long (" + (endTime - startTime) + "ms)"); + } + if (event.isClassClientError()) { throw new NativeDaemonArgumentException(logCmd, event); } @@ -339,7 +345,6 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo throw new NativeDaemonFailureException(logCmd, event); } - log("RTN <- {" + logCmd + "}"); return events.toArray(new NativeDaemonEvent[events.size()]); }