From 2210890f26d8b5642a21a275742d5ca4e99f7d76 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Thu, 6 Jul 2017 16:40:06 +0900 Subject: [PATCH] Add more logging to the Tethering SharedLog This may at first seem a tad spammy, but a cursory examination suggests most of this is the Tethering subsystem doing more work than necessary. Some of this can be addressed with some simple changes in the near term. Test: as follows - built - flashed - booted - "runtest frameworks-net" passes - watch "adb shell dumpsys connectivity tethering | tail 60" shows new log entries Bug: 29337859 Bug: 32163131 Bug: 63334101 Change-Id: I6219e56d571854a2c61e1da63095e319e4bd3dc1 --- .../server/connectivity/Tethering.java | 25 ++++++++----------- .../TetherInterfaceStateMachine.java | 16 +++++------- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index b6573352a4825..1bee594de9f1b 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -1087,11 +1087,8 @@ public class Tethering extends BaseNetworkObserver { return list.toArray(new String[list.size()]); } - private void maybeLogMessage(State state, int what) { - if (DBG) { - Log.d(TAG, state.getName() + " got " + - sMagicDecoderRing.get(what, Integer.toString(what))); - } + private void logMessage(State state, int what) { + mLog.log(state.getName() + " got " + sMagicDecoderRing.get(what, Integer.toString(what))); } private boolean upstreamWanted() { @@ -1215,7 +1212,7 @@ public class Tethering extends BaseNetworkObserver { class InitialState extends State { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case EVENT_IFACE_SERVING_STATE_ACTIVE: TetherInterfaceStateMachine who = (TetherInterfaceStateMachine)message.obj; @@ -1307,21 +1304,21 @@ public class Tethering extends BaseNetworkObserver { // Find the interface with the default IPv4 route. It may be the // interface described by linkProperties, or one of the interfaces // stacked on top of it. - Log.i(TAG, "Finding IPv4 upstream interface on: " + ns.linkProperties); + mLog.i("Finding IPv4 upstream interface on: " + ns.linkProperties); RouteInfo ipv4Default = RouteInfo.selectBestRoute( ns.linkProperties.getAllRoutes(), Inet4Address.ANY); if (ipv4Default != null) { iface = ipv4Default.getInterface(); - Log.i(TAG, "Found interface " + ipv4Default.getInterface()); + mLog.i("Found interface " + ipv4Default.getInterface()); } else { - Log.i(TAG, "No IPv4 upstream interface, giving up."); + mLog.i("No IPv4 upstream interface, giving up."); } } if (iface != null) { setDnsForwarders(ns.network, ns.linkProperties); } - notifyTetheredOfNewUpstreamIface(iface); + notifyDownstreamsOfNewUpstreamIface(iface); if (ns != null && pertainsToCurrentUpstream(ns)) { // If we already have NetworkState for this network examine // it immediately, because there likely will be no second @@ -1356,8 +1353,8 @@ public class Tethering extends BaseNetworkObserver { } } - protected void notifyTetheredOfNewUpstreamIface(String ifaceName) { - if (DBG) Log.d(TAG, "Notifying tethered with upstream=" + ifaceName); + protected void notifyDownstreamsOfNewUpstreamIface(String ifaceName) { + mLog.log("Notifying downstreams of upstream=" + ifaceName); mCurrentUpstreamIface = ifaceName; for (TetherInterfaceStateMachine sm : mNotifyList) { sm.sendMessage(TetherInterfaceStateMachine.CMD_TETHER_CONNECTION_CHANGED, @@ -1499,7 +1496,7 @@ public class Tethering extends BaseNetworkObserver { mOffloadController.stop(); mUpstreamNetworkMonitor.stop(); mSimChange.stopListening(); - notifyTetheredOfNewUpstreamIface(null); + notifyDownstreamsOfNewUpstreamIface(null); handleNewUpstreamNetworkState(null); } @@ -1518,7 +1515,7 @@ public class Tethering extends BaseNetworkObserver { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); boolean retValue = true; switch (message.what) { case EVENT_IFACE_SERVING_STATE_ACTIVE: { diff --git a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java index 86b255128d6dc..4bac69ce74951 100644 --- a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java +++ b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java @@ -441,12 +441,8 @@ public class TetherInterfaceStateMachine extends StateMachine { mLastRaParams = newParams; } - private void maybeLogMessage(State state, int what) { - if (DBG) { - Log.d(TAG, state.getName() + " got " + - sMagicDecoderRing.get(what, Integer.toString(what)) + ", Iface = " + - mIfaceName); - } + private void logMessage(State state, int what) { + mLog.log(state.getName() + " got " + sMagicDecoderRing.get(what, Integer.toString(what))); } private void sendInterfaceState(int newInterfaceState) { @@ -473,7 +469,7 @@ public class TetherInterfaceStateMachine extends StateMachine { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLastError = ConnectivityManager.TETHER_ERROR_NO_ERROR; @@ -545,7 +541,7 @@ public class TetherInterfaceStateMachine extends StateMachine { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_UNREQUESTED: transitionTo(mInitialState); @@ -595,7 +591,7 @@ public class TetherInterfaceStateMachine extends StateMachine { public boolean processMessage(Message message) { if (super.processMessage(message)) return true; - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLog.e("CMD_TETHER_REQUESTED while in local-only hotspot mode."); @@ -667,7 +663,7 @@ public class TetherInterfaceStateMachine extends StateMachine { public boolean processMessage(Message message) { if (super.processMessage(message)) return true; - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLog.e("CMD_TETHER_REQUESTED while already tethering.");