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

Commit b034d9ec authored by Mat Bevilacqua's avatar Mat Bevilacqua
Browse files

Reduce logging frequency of powerstats data

Test: atest FrameworksServicesTests:PowerStatsServiceTest
Bug: 176854474
Change-Id: I940213ab43c25207e9655513d8aeb05feb2b843d
parent 723784a0
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.