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

Commit 0064c4c7 authored by Thierry Strudel's avatar Thierry Strudel Committed by Android (Google) Code Review
Browse files

Merge "Don't assume kernel tick is 100Hz" into mnc-dr1.5-dev

parents c465e71c b786aaa5
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -16,8 +16,11 @@
package com.android.internal.os;

import android.text.TextUtils;
import android.system.OsConstants;
import android.util.Slog;

import libcore.io.Libcore;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
@@ -29,7 +32,7 @@ import java.util.Arrays;
 *
 * freq time
 *
 * where time is measured in 1/100 seconds.
 * where time is measured in jiffies.
 */
public class KernelCpuSpeedReader {
    private static final String TAG = "KernelCpuSpeedReader";
@@ -38,6 +41,9 @@ public class KernelCpuSpeedReader {
    private final long[] mLastSpeedTimes;
    private final long[] mDeltaSpeedTimes;

    // How long a CPU jiffy is in milliseconds.
    private final long mJiffyMillis;

    /**
     * @param cpuNumber The cpu (cpu0, cpu1, etc) whose state to read.
     */
@@ -46,6 +52,8 @@ public class KernelCpuSpeedReader {
                cpuNumber);
        mLastSpeedTimes = new long[numSpeedSteps];
        mDeltaSpeedTimes = new long[numSpeedSteps];
        long jiffyHz = Libcore.os.sysconf(OsConstants._SC_CLK_TCK);
        mJiffyMillis = 1000/jiffyHz;
    }

    /**
@@ -62,8 +70,7 @@ public class KernelCpuSpeedReader {
                splitter.setString(line);
                Long.parseLong(splitter.next());

                // The proc file reports time in 1/100 sec, so convert to milliseconds.
                long time = Long.parseLong(splitter.next()) * 10;
                long time = Long.parseLong(splitter.next()) * mJiffyMillis;
                if (time < mLastSpeedTimes[speedIndex]) {
                    // The stats reset when the cpu hotplugged. That means that the time
                    // we read is offset from 0, so the time is the delta.
+2 −2
Original line number Diff line number Diff line
@@ -67,10 +67,10 @@ public class ProcessCpuTracker {
    static final int PROCESS_STAT_UTIME = 2;
    static final int PROCESS_STAT_STIME = 3;

    /** Stores user time and system time in 100ths of a second. */
    /** Stores user time and system time in jiffies. */
    private final long[] mProcessStatsData = new long[4];

    /** Stores user time and system time in 100ths of a second.  Used for
    /** Stores user time and system time in jiffies.  Used for
     * public API to retrieve CPU use for a process.  Must lock while in use. */
    private final long[] mSinglePidStatsData = new long[4];