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

Commit 40e1dd67 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Ifee27c86,I9ffa4b00

* changes:
  Add more atoms to statsd
  Add wakelock atom to statsd
parents 17e5e2e5 e588524f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ namespace android {
namespace os {
namespace statsd {

// TODO: Can probably be used for Count, Value, and Gauge. If so, rename to ValueAnomalyTracker.
// (caveat: currently, the value cannot be negative. Probably fine for P.)
class CountAnomalyTracker {
public:
    CountAnomalyTracker(const Alert& alert);
+76 −1
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ message StatsEvent {
        ScheduledJobStateChanged scheduled_job_state_changed = 8;
        ScreenBrightnessChanged screen_brightness_changed = 9;
        // 10-20 are temporarily reserved for wakelocks etc.
        WakelockStateChanged wakelock_state_changed = 10;
        UidWakelockStateChanged uid_wakelock_state_changed = 11;
        LongPartialWakelockStateChanged long_partial_wakelock_state_changed = 12;
        BatterySaverModeStateChanged battery_saver_mode_state_changed = 21;
@@ -64,6 +65,10 @@ message StatsEvent {
        DeviceOnStatusChanged device_on_status_changed = 34;
        WakeupAlarmOccurred wakeup_alarm_occurred = 35;
        KernelWakeupReported kernel_wakeup_reported = 36;
        WifiLockStateChanged wifi_lock_state_changed = 37;
        WifiSignalStrengthChanged wifi_signal_strength_changed = 38;
        WifiScanStateChanged wifi_scan_state_changed = 39;
        PhoneSignalStrengthChanged phone_signal_strength_changed = 40;

        // TODO: Reorder the numbering so that the most frequent occur events occur in the first 15.
    }
@@ -364,7 +369,7 @@ message CameraStateChanged {
 * Logged from:
 *   TODO
 */
message WakelockChanged {
message WakelockStateChanged {
    // TODO: Add attribution instead of uid.
    optional int32 uid = 1;

@@ -571,3 +576,73 @@ message KernelWakeupReported {
    // Duration (in microseconds) for the wake-up interrupt to be serviced.
    optional int64 duration_usec = 2;
}

/**
 * Logs wifi locks held by an app.
 *
 * Logged from:
  *   frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
 */
message WifiLockStateChanged {
    // TODO: Add attribution instead of uid.
    optional int32 uid = 1;

    enum State {
        OFF = 0;
        ON = 1;
    }
    optional State state = 2;
}

/**
 * Logs wifi signal strength changes.
 *
 * Logged from:
  *   frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
 */
message WifiSignalStrengthChanged {
    // TODO: Reference the actual telephony/java/android/telephony/SignalStrength.java states.
    enum SignalStrength {
        SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
        SIGNAL_STRENGTH_POOR = 1;
        SIGNAL_STRENGTH_MODERATE = 2;
        SIGNAL_STRENGTH_GOOD = 3;
        SIGNAL_STRENGTH_GREAT = 4;
    }
    optional SignalStrength signal_strength = 1;
}

/**
 * Logs wifi scans performed by an app.
 *
 * Logged from:
  *   frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
 */
message WifiScanStateChanged {
    // TODO: Add attribution instead of uid.
    optional int32 uid = 1;

    enum State {
        OFF = 0;
        ON = 1;
    }
    optional State state = 2;
}

/**
 * Logs phone signal strength changes.
 *
 * Logged from:
  *   frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
 */
message PhoneSignalStrengthChanged {
    // TODO: Reference the actual telephony/java/android/telephony/SignalStrength.java states.
    enum SignalStrength {
        SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
        SIGNAL_STRENGTH_POOR = 1;
        SIGNAL_STRENGTH_MODERATE = 2;
        SIGNAL_STRENGTH_GOOD = 3;
        SIGNAL_STRENGTH_GREAT = 4;
    }
    optional SignalStrength signal_strength = 1;
}
 No newline at end of file
+22 −1
Original line number Diff line number Diff line
@@ -4634,6 +4634,7 @@ public class BatteryStatsImpl extends BatteryStats {
                if (DEBUG_HISTORY) Slog.v(TAG, "Signal strength " + strengthBin + " to: "
                        + Integer.toHexString(mHistoryCur.states));
                newHistory = true;
                StatsLog.write(StatsLog.PHONE_SIGNAL_STRENGTH_CHANGED, strengthBin);
            } else {
                stopAllPhoneSignalStrengthTimersLocked(-1);
            }
@@ -5189,6 +5190,7 @@ public class BatteryStatsImpl extends BatteryStats {
            if (strengthBin >= 0) {
                if (!mWifiSignalStrengthsTimer[strengthBin].isRunningLocked()) {
                    mWifiSignalStrengthsTimer[strengthBin].startRunningLocked(elapsedRealtime);
                    StatsLog.write(StatsLog.WIFI_SIGNAL_STRENGTH_CHANGED, strengthBin);
                }
                mHistoryCur.states2 =
                        (mHistoryCur.states2&~HistoryItem.STATE2_WIFI_SIGNAL_STRENGTH_MASK)
@@ -6054,6 +6056,8 @@ public class BatteryStatsImpl extends BatteryStats {
                            mBsi.mFullWifiLockTimers, mBsi.mOnBatteryTimeBase);
                }
                mFullWifiLockTimer.startRunningLocked(elapsedRealtimeMs);
                // TODO(statsd): Possibly use a worksource instead of a uid.
                StatsLog.write(StatsLog.WIFI_LOCK_STATE_CHANGED, getUid(), 1);
            }
        }
@@ -6062,6 +6066,10 @@ public class BatteryStatsImpl extends BatteryStats {
            if (mFullWifiLockOut) {
                mFullWifiLockOut = false;
                mFullWifiLockTimer.stopRunningLocked(elapsedRealtimeMs);
                if (!mFullWifiLockTimer.isRunningLocked()) { // only tell statsd if truly stopped
                    // TODO(statsd): Possibly use a worksource instead of a uid.
                    StatsLog.write(StatsLog.WIFI_LOCK_STATE_CHANGED, getUid(), 0);
                }
            }
        }
@@ -6075,6 +6083,8 @@ public class BatteryStatsImpl extends BatteryStats {
                            mOnBatteryBackgroundTimeBase);
                }
                mWifiScanTimer.startRunningLocked(elapsedRealtimeMs);
                // TODO(statsd): Possibly use a worksource instead of a uid.
                StatsLog.write(StatsLog.WIFI_SCAN_STATE_CHANGED, getUid(), 1);
            }
        }
@@ -6083,6 +6093,10 @@ public class BatteryStatsImpl extends BatteryStats {
            if (mWifiScanStarted) {
                mWifiScanStarted = false;
                mWifiScanTimer.stopRunningLocked(elapsedRealtimeMs);
                if (!mWifiScanTimer.isRunningLocked()) { // only tell statsd if truly stopped
                    // TODO(statsd): Possibly use a worksource instead of a uid.
                    StatsLog.write(StatsLog.WIFI_SCAN_STATE_CHANGED, getUid(), 0);
                }
            }
        }
@@ -8877,6 +8891,8 @@ public class BatteryStatsImpl extends BatteryStats {
            Wakelock wl = mWakelockStats.startObject(name);
            if (wl != null) {
                getWakelockTimerLocked(wl, type).startRunningLocked(elapsedRealtimeMs);
                // TODO(statsd): Hopefully use a worksource instead of a uid (so move elsewhere)
                StatsLog.write(StatsLog.WAKELOCK_STATE_CHANGED, getUid(), type, name, 1);
            }
            if (type == WAKE_TYPE_PARTIAL) {
                createAggregatedPartialWakelockTimerLocked().startRunningLocked(elapsedRealtimeMs);
@@ -8894,7 +8910,12 @@ public class BatteryStatsImpl extends BatteryStats {
        public void noteStopWakeLocked(int pid, String name, int type, long elapsedRealtimeMs) {
            Wakelock wl = mWakelockStats.stopObject(name);
            if (wl != null) {
                getWakelockTimerLocked(wl, type).stopRunningLocked(elapsedRealtimeMs);
                StopwatchTimer wlt = getWakelockTimerLocked(wl, type);
                wlt.stopRunningLocked(elapsedRealtimeMs);
                if (!wlt.isRunningLocked()) { // only tell statsd if truly stopped
                    // TODO(statsd): Possibly use a worksource instead of a uid.
                    StatsLog.write(StatsLog.WAKELOCK_STATE_CHANGED, getUid(), type, name, 0);
                }
            }
            if (type == WAKE_TYPE_PARTIAL) {
                if (mAggregatedPartialWakelockTimer != null) {