diff options
| author | Thierry Strudel <tstrudel@google.com> | 2016-01-22 22:28:41 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-01-22 22:28:41 +0000 |
| commit | afbf1570acfac5dfc28196c3f4b424fdaef85508 (patch) | |
| tree | 49ee2731eb3544633ac1c4a7447b44d1e1cab950 /core/java | |
| parent | 375901244c051d85a63d7ca83807e5f1ca7a5d0a (diff) | |
| parent | e8b476e8e81ee8bc4fe70fbc78db2f496b2aa023 (diff) | |
Merge "Don\'t assume kernel tick is 100Hz" into mnc-dr1.5-dev am: 0064c4c793
am: e8b476e8e8
* commit 'e8b476e8e81ee8bc4fe70fbc78db2f496b2aa023':
Don't assume kernel tick is 100Hz
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/os/KernelCpuSpeedReader.java | 13 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/ProcessCpuTracker.java | 4 |
2 files changed, 12 insertions, 5 deletions
diff --git a/core/java/com/android/internal/os/KernelCpuSpeedReader.java b/core/java/com/android/internal/os/KernelCpuSpeedReader.java index 5b776acf0cc8..3f6ebb9cccff 100644 --- a/core/java/com/android/internal/os/KernelCpuSpeedReader.java +++ b/core/java/com/android/internal/os/KernelCpuSpeedReader.java @@ -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. diff --git a/core/java/com/android/internal/os/ProcessCpuTracker.java b/core/java/com/android/internal/os/ProcessCpuTracker.java index bf97f1f3e2ed..d8319022f431 100644 --- a/core/java/com/android/internal/os/ProcessCpuTracker.java +++ b/core/java/com/android/internal/os/ProcessCpuTracker.java @@ -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]; |
