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

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

Merge "Reduce logging frequency of powerstats data"

parents ed8ded04 b034d9ec
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ public final class BatteryTrigger extends PowerStatsLogTrigger {

                    if (newBatteryLevel < mBatteryLevel) {
                        if (DEBUG) Slog.d(TAG, "Battery level dropped.  Log rail data");
                        logPowerStatsData();
                        logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP);
                    }

                    mBatteryLevel = newBatteryLevel;
+2 −4
Original line number Diff line number Diff line
@@ -31,10 +31,8 @@ public abstract class PowerStatsLogTrigger {
    protected Context mContext;
    private PowerStatsLogger mPowerStatsLogger;

    protected void logPowerStatsData() {
        Message.obtain(
            mPowerStatsLogger,
            PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE).sendToTarget();
    protected void logPowerStatsData(int msgType) {
        Message.obtain(mPowerStatsLogger, msgType).sendToTarget();
    }

    public PowerStatsLogTrigger(Context context, PowerStatsLogger powerStatsLogger) {
+8 −3
Original line number Diff line number Diff line
@@ -52,7 +52,8 @@ import java.io.IOException;
public final class PowerStatsLogger extends Handler {
    private static final String TAG = PowerStatsLogger.class.getSimpleName();
    private static final boolean DEBUG = false;
    protected static final int MSG_LOG_TO_DATA_STORAGE = 0;
    protected static final int MSG_LOG_TO_DATA_STORAGE_TIMER = 0;
    protected static final int MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP = 1;

    private final PowerStatsDataStorage mPowerStatsMeterStorage;
    private final PowerStatsDataStorage mPowerStatsModelStorage;
@@ -62,8 +63,8 @@ public final class PowerStatsLogger extends Handler {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MSG_LOG_TO_DATA_STORAGE:
                if (DEBUG) Slog.d(TAG, "Logging to data storage");
            case MSG_LOG_TO_DATA_STORAGE_TIMER:
                if (DEBUG) Slog.d(TAG, "Logging to data storage on timer");

                // Log power meter data.
                EnergyMeasurement[] energyMeasurements =
@@ -78,6 +79,10 @@ public final class PowerStatsLogger extends Handler {
                mPowerStatsModelStorage.write(
                        EnergyConsumerResultUtils.getProtoBytes(energyConsumerResults));
                if (DEBUG) EnergyConsumerResultUtils.print(energyConsumerResults);
                break;

            case MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP:
                if (DEBUG) Slog.d(TAG, "Logging to data storage on battery drop");

                // Log state residency data.
                StateResidencyResult[] stateResidencyResults =
+2 −2
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ public final class TimerTrigger extends PowerStatsLogTrigger {
    private static final String TAG = TimerTrigger.class.getSimpleName();
    private static final boolean DEBUG = false;
    // TODO(b/166689029): Make configurable through global settings.
    private static final long LOG_PERIOD_MS = 60 * 1000;
    private static final long LOG_PERIOD_MS = 120 * 1000;

    private final Handler mHandler;

@@ -40,7 +40,7 @@ public final class TimerTrigger extends PowerStatsLogTrigger {
            // LOG_PERIOD_MS.
            mHandler.postDelayed(mLogData, LOG_PERIOD_MS);
            if (DEBUG) Slog.d(TAG, "Received delayed message.  Log rail data");
            logPowerStatsData();
            logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);
        }
    };

+7 −4
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ public class PowerStatsServiceTest {
    private PowerStatsService mService;
    private File mDataStorageDir;
    private TimerTrigger mTimerTrigger;
    private BatteryTrigger mBatteryTrigger;
    private PowerStatsLogger mPowerStatsLogger;

    private final PowerStatsService.Injector mInjector = new PowerStatsService.Injector() {
@@ -125,7 +126,9 @@ public class PowerStatsServiceTest {

        @Override
        BatteryTrigger createBatteryTrigger(Context context, PowerStatsLogger powerStatsLogger) {
            return new BatteryTrigger(context, powerStatsLogger, false /* trigger enabled */);
            mBatteryTrigger = new BatteryTrigger(context, powerStatsLogger,
                false /* trigger enabled */);
            return mBatteryTrigger;
        }

        @Override
@@ -237,7 +240,7 @@ public class PowerStatsServiceTest {
        mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);

        // Write data to on-device storage.
        mTimerTrigger.logPowerStatsData();
        mTimerTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);

        // The above call puts a message on a handler.  Wait for
        // it to be processed.
@@ -278,7 +281,7 @@ public class PowerStatsServiceTest {
        mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);

        // Write data to on-device storage.
        mTimerTrigger.logPowerStatsData();
        mTimerTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);

        // The above call puts a message on a handler.  Wait for
        // it to be processed.
@@ -318,7 +321,7 @@ public class PowerStatsServiceTest {
        mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);

        // Write data to on-device storage.
        mTimerTrigger.logPowerStatsData();
        mBatteryTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP);

        // The above call puts a message on a handler.  Wait for
        // it to be processed.