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

Commit 4291f0f7 authored by Sowmith Chityala's avatar Sowmith Chityala
Browse files

Make thermal throttling state change logging per sensor, not global

A device can have multiple sensors, each with independent states, so we need to track the previous value for each sensor and log it per-sensor.

Bug: 340949158
Test: Atom tester and Logcat.

Flag: EXEMPT Bug fix
Change-Id: I7d33f3599bfc39b39126e262f0ed74b407910cd6
parent 8adbf55c
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -472,8 +472,8 @@ public class StatsPullAtomService extends SystemService {
     */
     */
    public static final boolean ENABLE_MOBILE_DATA_STATS_AGGREGATED_PULLER =
    public static final boolean ENABLE_MOBILE_DATA_STATS_AGGREGATED_PULLER =
                addMobileBytesTransferByProcStatePuller();
                addMobileBytesTransferByProcStatePuller();
    private static int mPreviousThermalThrottlingStatus = Temperature.THROTTLING_NONE;
    private static final ArrayMap<String, Integer> mPreviousThermalThrottlingStatus =

            new ArrayMap<>();
    // Puller locks
    // Puller locks
    private final Object mDataBytesTransferLock = new Object();
    private final Object mDataBytesTransferLock = new Object();
    private final Object mBluetoothBytesTransferLock = new Object();
    private final Object mBluetoothBytesTransferLock = new Object();
@@ -5451,10 +5451,14 @@ public class StatsPullAtomService extends SystemService {
    private static final class ThermalEventListener extends IThermalEventListener.Stub {
    private static final class ThermalEventListener extends IThermalEventListener.Stub {
        @Override
        @Override
        public void notifyThrottling(Temperature temp) {
        public void notifyThrottling(Temperature temp) {
            final String name = temp.getName();
            final int status = temp.getStatus();
            final int previousStatus = mPreviousThermalThrottlingStatus.getOrDefault(name,
                    Temperature.THROTTLING_NONE);
            FrameworkStatsLog.write(FrameworkStatsLog.THERMAL_THROTTLING_SEVERITY_STATE_CHANGED,
            FrameworkStatsLog.write(FrameworkStatsLog.THERMAL_THROTTLING_SEVERITY_STATE_CHANGED,
                    temp.getType(), temp.getName(), (int) (temp.getValue() * 10),
                    temp.getType(), temp.getName(), (int) (temp.getValue() * 10),
                    temp.getStatus(), mPreviousThermalThrottlingStatus);
                    temp.getStatus(), previousStatus);
            mPreviousThermalThrottlingStatus = temp.getStatus();
            mPreviousThermalThrottlingStatus.put(name, status);
        }
        }
    }
    }