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

Commit 290deba7 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov
Browse files

Add SensorPowerStatsProcessor

Bug: 333941740
Test: atest PowerStatsTestsRavenwood; atest PowerStatsTests
Flag: com.android.server.power.optimization.streamlined_misc_battery_stats

Change-Id: I13c05b6cac5f7333e5e883073d5ba47dbacc4834
parent 324dce3d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -209,7 +209,8 @@ public abstract class BatteryConsumer {
                POWER_COMPONENT_VIDEO,
                POWER_COMPONENT_FLASHLIGHT,
                POWER_COMPONENT_CAMERA,
                POWER_COMPONENT_GNSS};
                POWER_COMPONENT_GNSS,
                POWER_COMPONENT_SENSORS};
        Arrays.sort(supportedPowerComponents);
        SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents);
    };
+1 −1
Original line number Diff line number Diff line
@@ -3077,7 +3077,7 @@ public abstract class BatteryStats {
    public static final String[] HISTORY_EVENT_NAMES = new String[] {
            "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn",
            "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive",
            "tmpwhitelist", "screenwake", "wakeupap", "longwake", "est_capacity", "state"
            "tmpwhitelist", "screenwake", "wakeupap", "longwake", "state"
    };

    public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] {
+16 −0
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ import com.android.server.power.stats.PowerStatsScheduler;
import com.android.server.power.stats.PowerStatsStore;
import com.android.server.power.stats.PowerStatsUidResolver;
import com.android.server.power.stats.ScreenPowerStatsProcessor;
import com.android.server.power.stats.SensorPowerStatsProcessor;
import com.android.server.power.stats.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes;
import com.android.server.power.stats.VideoPowerStatsProcessor;
import com.android.server.power.stats.WifiPowerStatsProcessor;
@@ -595,6 +596,17 @@ public final class BatteryStatsService extends IBatteryStats.Stub
                .setProcessor(
                        new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));

        config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SENSORS)
                .trackDeviceStates(
                        AggregatedPowerStatsConfig.STATE_POWER,
                        AggregatedPowerStatsConfig.STATE_SCREEN)
                .trackUidStates(
                        AggregatedPowerStatsConfig.STATE_POWER,
                        AggregatedPowerStatsConfig.STATE_SCREEN,
                        AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
                .setProcessor(new SensorPowerStatsProcessor(
                        () -> mContext.getSystemService(SensorManager.class)));

        config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new)
                .trackDeviceStates(
                        AggregatedPowerStatsConfig.STATE_POWER,
@@ -706,6 +718,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub
                BatteryConsumer.POWER_COMPONENT_GNSS,
                Flags.streamlinedMiscBatteryStats());

        mBatteryUsageStatsProvider.setPowerStatsExporterEnabled(
                BatteryConsumer.POWER_COMPONENT_SENSORS,
                Flags.streamlinedMiscBatteryStats());

        mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA,
                Flags.streamlinedMiscBatteryStats());
        mBatteryUsageStatsProvider.setPowerStatsExporterEnabled(
+4 −12
Original line number Diff line number Diff line
@@ -5431,8 +5431,6 @@ public class BatteryStatsImpl extends BatteryStats {
        }
    }
    int mSensorNesting;
    @GuardedBy("this")
    public void noteStartSensorLocked(int uid, int sensor) {
        noteStartSensorLocked(uid, sensor, mClock.elapsedRealtime(), mClock.uptimeMillis());
@@ -5441,11 +5439,8 @@ public class BatteryStatsImpl extends BatteryStats {
    @GuardedBy("this")
    public void noteStartSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) {
        uid = mapUid(uid);
        if (mSensorNesting == 0) {
        mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs,
                    HistoryItem.STATE_SENSOR_ON_FLAG);
        }
        mSensorNesting++;
                HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor));
        getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs)
                .noteStartSensor(sensor, elapsedRealtimeMs);
    }
@@ -5458,11 +5453,8 @@ public class BatteryStatsImpl extends BatteryStats {
    @GuardedBy("this")
    public void noteStopSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) {
        uid = mapUid(uid);
        mSensorNesting--;
        if (mSensorNesting == 0) {
        mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs,
                    HistoryItem.STATE_SENSOR_ON_FLAG);
        }
                HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor));
        getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs)
                .noteStopSensor(sensor, elapsedRealtimeMs);
    }
+4 −2
Original line number Diff line number Diff line
@@ -93,8 +93,10 @@ public class BatteryUsageStatsProvider {
                if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)) {
                    mPowerCalculators.add(new BluetoothPowerCalculator(mPowerProfile));
                }
                if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_SENSORS)) {
                    mPowerCalculators.add(new SensorPowerCalculator(
                            mContext.getSystemService(SensorManager.class)));
                }
                if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) {
                    mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile));
                }
Loading