diff options
| author | 2021-02-01 10:28:02 +0000 | |
|---|---|---|
| committer | 2021-02-03 10:22:44 +0000 | |
| commit | f280c6aba50b43edd1e5a0d97294d41cc70ac3eb (patch) | |
| tree | 35c6646db424679940b2b777c1195f307046cf17 | |
| parent | 173704e599de3b6eecfc3fdfc1261291635bfa12 (diff) | |
Check if CPU time tracking is expected to work
Register the puller for CpuTimePerClusterFreq only if CPU time tracking
is supported. This avoid passing all zero times around and recording
"no data" state.
Depends on https://r.android.com/1566193
Bug: 174245730
Test: cmd stats pull-source 10095
Test: atest CpuStatsTests
Change-Id: Ifb3da84711b111eabc4af7a166dec794278b4a02
| -rw-r--r-- | core/java/com/android/internal/os/KernelCpuTotalBpfMapReader.java | 5 | ||||
| -rw-r--r-- | core/jni/com_android_internal_os_KernelCpuTotalBpfMapReader.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/core/java/com/android/internal/os/KernelCpuTotalBpfMapReader.java b/core/java/com/android/internal/os/KernelCpuTotalBpfMapReader.java index fa552e3603c6..50331e3338dc 100644 --- a/core/java/com/android/internal/os/KernelCpuTotalBpfMapReader.java +++ b/core/java/com/android/internal/os/KernelCpuTotalBpfMapReader.java @@ -24,10 +24,7 @@ public final class KernelCpuTotalBpfMapReader { } /** Returns whether total CPU time is measured. */ - public static boolean isSupported() { - // TODO(b/174245730): Implement this check. - return true; - } + public static native boolean isSupported(); /** Reads total CPU time from bpf map. */ public static native boolean read(Callback callback); diff --git a/core/jni/com_android_internal_os_KernelCpuTotalBpfMapReader.cpp b/core/jni/com_android_internal_os_KernelCpuTotalBpfMapReader.cpp index 72492381e31a..d8446ca2881d 100644 --- a/core/jni/com_android_internal_os_KernelCpuTotalBpfMapReader.cpp +++ b/core/jni/com_android_internal_os_KernelCpuTotalBpfMapReader.cpp @@ -20,6 +20,10 @@ namespace android { +static jboolean KernelCpuTotalBpfMapReader_isSupported(JNIEnv *, jobject) { + return android::bpf::isTrackingUidTimesSupported() ? JNI_TRUE : JNI_FALSE; +} + static jboolean KernelCpuTotalBpfMapReader_read(JNIEnv *env, jobject, jobject callback) { jclass callbackClass = env->GetObjectClass(callback); jmethodID callbackMethod = env->GetMethodID(callbackClass, "accept", "(IIJ)V"); @@ -47,6 +51,7 @@ static jboolean KernelCpuTotalBpfMapReader_read(JNIEnv *env, jobject, jobject ca static const JNINativeMethod methods[] = { {"read", "(Lcom/android/internal/os/KernelCpuTotalBpfMapReader$Callback;)Z", (void *)KernelCpuTotalBpfMapReader_read}, + {"isSupported", "()Z", (void *)KernelCpuTotalBpfMapReader_isSupported}, }; int register_com_android_internal_os_KernelCpuTotalBpfMapReader(JNIEnv *env) { |