From 530da166529c1bb9bc2ada5032493956db0f7ab8 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Thu, 9 Jul 2020 14:20:27 -0700 Subject: [PATCH] Add @CriticalNative to getNativeTid to improve performance Bug: 158232997 Test: atest FrameworksCoreTests:com.android.internal.os.BinderCallsStatsTestBug Change-Id: I5a5022921ba54354db59083f015d193d929ae0d5 --- core/java/android/os/Binder.java | 1 + core/jni/android_util_Binder.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 0c81e5a23291c..a0207c8497c81 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -127,6 +127,7 @@ public class Binder implements IBinder { * * @hide */ + @CriticalNative public static native int getNativeTid(); // Use a Holder to allow static initialization of Binder in the boot image, and diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index aef53a4b33182..885b0a33e43cd 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -1048,7 +1048,7 @@ static void android_os_Binder_setExtension(JNIEnv* env, jobject obj, jobject ext jbh->setExtension(extension); } -JNIEXPORT jint JNICALL android_os_Binder_getNativeTid(JNIEnv* env, jobject clazz) { +static jint android_os_Binder_getNativeTid() { return (jint)android::base::GetThreadId(); } @@ -1083,6 +1083,7 @@ static const JNINativeMethod gBinderMethods[] = { { "blockUntilThreadAvailable", "()V", (void*)android_os_Binder_blockUntilThreadAvailable }, { "getExtension", "()Landroid/os/IBinder;", (void*)android_os_Binder_getExtension }, { "setExtension", "(Landroid/os/IBinder;)V", (void*)android_os_Binder_setExtension }, + // @CriticalNative { "getNativeTid", "()I", (void*)android_os_Binder_getNativeTid }, };