Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66bf7976 authored by Felipe Leme's avatar Felipe Leme Committed by android-build-merger
Browse files

Created a NETWORK trace tag. am: 873a83af am: e9bac30a

am: 68dcfcc2

Change-Id: I4d89a5e4720bf639800999819d69dbedae19a1fd
parents 04f445af 68dcfcc2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -81,6 +81,8 @@ public final class Trace {
    public static final long TRACE_TAG_SYSTEM_SERVER = 1L << 19;
    /** @hide */
    public static final long TRACE_TAG_DATABASE = 1L << 20;
    /** @hide */
    public static final long TRACE_TAG_NETWORK = 1L << 21;

    private static final long TRACE_TAG_NOT_READY = 1L << 63;
    private static final int MAX_SECTION_NAME_LEN = 127;
+240 −188
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -566,6 +567,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    }

    public void systemReady() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
        try {
            if (!isBandwidthControlEnabled()) {
                Slog.w(TAG, "bandwidth controls disabled, unable to enforce policy");
                return;
@@ -661,7 +664,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    MANAGE_NETWORK_POLICY, mHandler);

            // listen for configured wifi networks to be removed
        final IntentFilter wifiConfigFilter = new IntentFilter(CONFIGURED_NETWORKS_CHANGED_ACTION);
            final IntentFilter wifiConfigFilter =
                    new IntentFilter(CONFIGURED_NETWORKS_CHANGED_ACTION);
            mContext.registerReceiver(mWifiConfigReceiver, wifiConfigFilter, null, mHandler);

            // listen for wifi state changes to catch metered hint
@@ -670,14 +674,21 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            mContext.registerReceiver(mWifiStateReceiver, wifiStateFilter, null, mHandler);

            mUsageStats.addAppIdleStateChangeListener(new AppIdleStateChangeListener());

        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    final private IUidObserver mUidObserver = new IUidObserver.Stub() {
        @Override public void onUidStateChanged(int uid, int procState) throws RemoteException {
            Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "onUidStateChanged");
            try {
                synchronized (mUidRulesFirstLock) {
                    updateUidStateUL(uid, procState);
                }
            } finally {
                Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
            }
        }

        @Override public void onUidGone(int uid) throws RemoteException {
@@ -2049,7 +2060,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        // Must whitelist foreground apps before turning data saver mode on.
        // TODO: there is no need to iterate through all apps here, just those in the foreground,
        // so it could call AM to get the UIDs of such apps, and iterate through them instead.
        updateRulesForAllAppsUL(TYPE_RESTRICT_BACKGROUND);
        updateRulesForRestrictBackgroundUL();
        try {
            if (!mNetworkManager.setDataSaverModeEnabled(mRestrictBackground)) {
                Slog.e(TAG, "Could not change Data Saver Mode on NMS to " + mRestrictBackground);
@@ -2145,6 +2156,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    public void setDeviceIdleMode(boolean enabled) {
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);

        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "setDeviceIdleMode");
        try {
            synchronized (mUidRulesFirstLock) {
                if (mDeviceIdleMode != enabled) {
                    mDeviceIdleMode = enabled;
@@ -2160,6 +2173,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    }
                }
            }
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    private NetworkPolicy findPolicyForNetworkNL(NetworkIdentity ident) {
@@ -2434,6 +2450,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
     * {@link #updateRulesForPowerRestrictionsUL(int)}
     */
    private void updateUidStateUL(int uid, int uidState) {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateUidStateUL");
        try {
            final int oldUidState = mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY);
            if (oldUidState != uidState) {
                // state changed, push updated rules
@@ -2454,6 +2472,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                }
                updateNetworkStats(uid, isUidStateForegroundUL(uidState));
            }
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    private void removeUidStateUL(int uid) {
@@ -2505,8 +2526,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    }

    void updateRulesForPowerSaveUL() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForPowerSaveUL");
        try {
            updateRulesForWhitelistedPowerSaveUL(mRestrictPower, FIREWALL_CHAIN_POWERSAVE,
                    mUidFirewallPowerSaveRules);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    void updateRuleForRestrictPowerUL(int uid) {
@@ -2514,8 +2540,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    }

    void updateRulesForDeviceIdleUL() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForDeviceIdleUL");
        try {
            updateRulesForWhitelistedPowerSaveUL(mDeviceIdleMode, FIREWALL_CHAIN_DOZABLE,
                    mUidFirewallDozableRules);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    void updateRuleForDeviceIdleUL(int uid) {
@@ -2577,6 +2608,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    }

    void updateRulesForAppIdleUL() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForAppIdleUL");
        try {
            final SparseIntArray uidRules = mUidFirewallStandbyRules;
            uidRules.clear();

@@ -2598,6 +2631,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            }

            setUidFirewallRules(FIREWALL_CHAIN_STANDBY, uidRules);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    void updateRuleForAppIdleUL(int uid) {
@@ -2622,9 +2658,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
     * {@link #mRestrictPower}, or {@link #mDeviceIdleMode} value.
     */
    private void updateRulesForGlobalChangeAL(boolean restrictedNetworksChanged) {
        long start;
        if (LOGD) start = System.currentTimeMillis();

        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForGlobalChangeAL");
        try {
            updateRulesForRestrictPowerUL();
            updateRulesForRestrictBackgroundUL();

@@ -2633,22 +2668,30 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                normalizePoliciesNL();
                updateNetworkRulesNL();
            }
        if (LOGD) {
            final long delta = System.currentTimeMillis() - start;
            Slog.d(TAG, "updateRulesForGlobalChangeAL(" + restrictedNetworksChanged + ") took "
                    + delta + "ms");
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    private void updateRulesForRestrictPowerUL() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForRestrictPowerUL");
        try {
            updateRulesForDeviceIdleUL();
            updateRulesForAppIdleUL();
            updateRulesForPowerSaveUL();
            updateRulesForAllAppsUL(TYPE_RESTRICT_POWER);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    private void updateRulesForRestrictBackgroundUL() {
        Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForRestrictBackgroundUL");
        try {
            updateRulesForAllAppsUL(TYPE_RESTRICT_BACKGROUND);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
        }
    }

    private static final int TYPE_RESTRICT_BACKGROUND = 1;
@@ -2663,6 +2706,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

    // TODO: refactor / consolidate all those updateXyz methods, there are way too many of them...
    private void updateRulesForAllAppsUL(@RestrictType int type) {
        if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) {
            Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForRestrictPowerUL-" + type);
        }
        try {
            final PackageManager pm = mContext.getPackageManager();

            // update rules for all installed applications
@@ -2691,6 +2738,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    }
                }
            }
        } finally {
            if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) {
                Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
            }
        }
    }

    private void updateRulesForTempWhitelistChangeUL() {