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

Commit 21b8d3e1 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Android (Google) Code Review
Browse files

Merge "Reduce frequency of LongArrayMultistateCounter.incrementValues calls" into main

parents 6d57d74a d2cbeb8c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.os;

import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
import android.ravenwood.annotation.RavenwoodKeepWholeClass;
@@ -155,8 +156,9 @@ public final class LongArrayMultiStateCounter implements Parcelable {

    /**
     * Adds the supplied values to the current accumulated values in the counter.
     * Null `values` parameter is interpreted as an array of zeros.
     */
    public void incrementValues(long[] values, long timestampMs) {
    public void incrementValues(@Nullable long[] values, long timestampMs) {
        native_incrementValues(mNativeObject, values, timestampMs);
    }

+8 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.os;

import android.annotation.Nullable;
import android.os.BadParcelableException;
import android.os.Parcel;
import android.ravenwood.annotation.RavenwoodKeepWholeClass;
@@ -147,11 +148,13 @@ class LongArrayMultiStateCounter_ravenwood {
            mLastUpdateTimestampMs = timestampMs;
        }

        public void incrementValues(long[] delta, long timestampMs) {
        public void incrementValues(@Nullable long[] delta, long timestampMs) {
            long[] values = Arrays.copyOf(mValues, mValues.length);
            if (delta != null) {
                for (int i = 0; i < mArrayLength; i++) {
                    values[i] += delta[i];
                }
            }
            updateValue(values, timestampMs);
        }

@@ -304,7 +307,8 @@ class LongArrayMultiStateCounter_ravenwood {
        getInstance(targetInstanceId).copyStatesFrom(getInstance(sourceInstanceId));
    }

    public static void native_incrementValues(long instanceId, long[] delta, long timestampMs) {
    public static void native_incrementValues(long instanceId, @Nullable long[] delta,
            long timestampMs) {
        getInstance(instanceId).incrementValues(delta, timestampMs);
    }

+7 −1
Original line number Diff line number Diff line
@@ -97,7 +97,13 @@ static void native_updateValues(JNIEnv *env, jclass, jlong nativePtr, jlongArray
static void native_incrementValues(JNIEnv *env, jclass, jlong nativePtr, jlongArray values,
                                   jlong timestamp) {
    auto *counter = reinterpret_cast<LongArrayMultiStateCounter *>(nativePtr);
    if (values != nullptr) {
        counter->incrementValue(JavaUint64Array(env, values), timestamp);
    } else {
        // Pass an empty Uint64Array, which is equivalent to an array of zeros.
        // This is done to ensure that the timestamp is still updated in the counter.
        counter->incrementValue(Uint64Array(), timestamp);
    }
}

static void native_addCounts(JNIEnv *env, jclass, jlong nativePtr, jlongArray values) {
+7 −6
Original line number Diff line number Diff line
@@ -274,9 +274,9 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor {
                    int uid = uids.get(k);
                    if (stats.getUidStats(mTmpUidStatsArray, uid,
                            proportionalEstimate.stateValues)) {
                        double power = intermediates.power
                                * mStatsLayout.getUidUsageDuration(mTmpUidStatsArray)
                                / intermediates.duration;
                        long duration = mStatsLayout.getUidUsageDuration(mTmpUidStatsArray);
                        if (duration != 0) {
                            double power = intermediates.power * duration / intermediates.duration;
                            mStatsLayout.setUidPowerEstimate(mTmpUidStatsArray, power);
                            stats.setUidStats(uid, proportionalEstimate.stateValues,
                                    mTmpUidStatsArray);
@@ -286,3 +286,4 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor {
            }
        }
    }
}
+4 −2
Original line number Diff line number Diff line
@@ -299,8 +299,10 @@ class BluetoothPowerStatsProcessor extends PowerStatsProcessor {
                            / intermediates.txBytes;
                }
            }
            if (power != 0) {
                mStatsLayout.setUidPowerEstimate(mTmpUidStatsArray, power);
                stats.setUidStats(uid, proportionalEstimate.stateValues, mTmpUidStatsArray);
            }
        }
    }
}
Loading