diff options
author | 2025-01-30 20:57:31 +0000 | |
---|---|---|
committer | 2025-01-30 20:57:31 +0000 | |
commit | f89bf767371d06ef8e4c7ba6a69dae70540f0847 (patch) | |
tree | b39360ea2d2d5780279272a6cf134ec885697ae6 | |
parent | 4a429a89ef31ad64c198aa47825e0024c0981ea3 (diff) |
Enable PerfettoTrace on ravenwood
Flag: EXEMPT host test change only
Bug: 303199244
Test: atest CtsOsTestCasesRavenwood
Change-Id: I1f4ebd3de7273924eebeedd5c4338db26fc3ea6a
-rw-r--r-- | core/java/android/os/PerfettoTrace.java | 32 | ||||
-rw-r--r-- | core/java/android/os/PerfettoTrackEventExtra.java | 20 | ||||
-rw-r--r-- | ravenwood/texts/ravenwood-annotation-allowed-classes.txt | 4 |
3 files changed, 54 insertions, 2 deletions
diff --git a/core/java/android/os/PerfettoTrace.java b/core/java/android/os/PerfettoTrace.java index 68f1570154ff..076437f0e0d8 100644 --- a/core/java/android/os/PerfettoTrace.java +++ b/core/java/android/os/PerfettoTrace.java @@ -16,6 +16,8 @@ package android.os; +import com.android.internal.ravenwood.RavenwoodEnvironment; + import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; @@ -32,6 +34,7 @@ import java.util.concurrent.atomic.AtomicInteger; * * @hide */ +@android.ravenwood.annotation.RavenwoodKeepWholeClass public final class PerfettoTrace { private static final String TAG = "PerfettoTrace"; @@ -53,6 +56,7 @@ public final class PerfettoTrace { * Registering a category is not sufficient to capture events within the category, it must * also be enabled in the trace config. */ + @android.ravenwood.annotation.RavenwoodKeepWholeClass public static final class Category implements PerfettoTrackEventExtra.PerfettoPointer { private static final NativeAllocationRegistry sRegistry = NativeAllocationRegistry.createMalloced( @@ -97,12 +101,16 @@ public final class PerfettoTrace { mSeverity = severity; mPtr = native_init(name, tag, severity); mExtraPtr = native_get_extra_ptr(mPtr); - sRegistry.registerNativeAllocation(this, mPtr); + if (!RavenwoodEnvironment.getInstance().isRunningOnRavenwood()) { + sRegistry.registerNativeAllocation(this, mPtr); + } } @FastNative + @android.ravenwood.annotation.RavenwoodReplace private static native long native_init(String name, String tag, String severity); @CriticalNative + @android.ravenwood.annotation.RavenwoodReplace private static native long native_delete(); @CriticalNative private static native void native_register(long ptr); @@ -111,8 +119,24 @@ public final class PerfettoTrace { @CriticalNative private static native boolean native_is_enabled(long ptr); @CriticalNative + @android.ravenwood.annotation.RavenwoodReplace private static native long native_get_extra_ptr(long ptr); + private static long native_init$ravenwood(String name, String tag, String severity) { + // Tracing currently completely disabled under Ravenwood + return 0; + } + + private static long native_delete$ravenwood() { + // Tracing currently completely disabled under Ravenwood + return 0; + } + + private static long native_get_extra_ptr$ravenwood(long ptr) { + // Tracing currently completely disabled under Ravenwood + return 0; + } + /** * Register the category. */ @@ -134,10 +158,16 @@ public final class PerfettoTrace { /** * Whether the category is enabled or not. */ + @android.ravenwood.annotation.RavenwoodReplace public boolean isEnabled() { return IS_FLAG_ENABLED && native_is_enabled(mPtr); } + public boolean isEnabled$ravenwood() { + // Tracing currently completely disabled under Ravenwood + return false; + } + /** * Whether the category is registered or not. */ diff --git a/core/java/android/os/PerfettoTrackEventExtra.java b/core/java/android/os/PerfettoTrackEventExtra.java index e034fb3726e3..72b909e64c70 100644 --- a/core/java/android/os/PerfettoTrackEventExtra.java +++ b/core/java/android/os/PerfettoTrackEventExtra.java @@ -16,6 +16,8 @@ package android.os; +import com.android.internal.ravenwood.RavenwoodEnvironment; + import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; @@ -29,6 +31,7 @@ import java.util.function.Supplier; * * @hide */ +@android.ravenwood.annotation.RavenwoodKeepWholeClass public final class PerfettoTrackEventExtra { private static final int DEFAULT_EXTRA_CACHE_SIZE = 5; private static final Builder NO_OP_BUILDER = new NoOpBuilder(); @@ -305,6 +308,7 @@ public final class PerfettoTrackEventExtra { Builder endNested(); } + @android.ravenwood.annotation.RavenwoodKeepWholeClass public static final class NoOpBuilder implements Builder { @Override public void emit() {} @@ -759,7 +763,9 @@ public final class PerfettoTrackEventExtra { private PerfettoTrackEventExtra() { mPtr = native_init(); - sRegistry.registerNativeAllocation(this, mPtr); + if (!RavenwoodEnvironment.getInstance().isRunningOnRavenwood()) { + sRegistry.registerNativeAllocation(this, mPtr); + } } /** @@ -1342,8 +1348,10 @@ public final class PerfettoTrackEventExtra { } @CriticalNative + @android.ravenwood.annotation.RavenwoodReplace private static native long native_init(); @CriticalNative + @android.ravenwood.annotation.RavenwoodReplace private static native long native_delete(); @CriticalNative private static native void native_add_arg(long ptr, long extraPtr); @@ -1351,4 +1359,14 @@ public final class PerfettoTrackEventExtra { private static native void native_clear_args(long ptr); @FastNative private static native void native_emit(int type, long tag, String name, long ptr); + + private static long native_init$ravenwood() { + // Tracing currently completely disabled under Ravenwood + return 0; + } + + private static long native_delete$ravenwood() { + // Tracing currently completely disabled under Ravenwood + return 0; + } } diff --git a/ravenwood/texts/ravenwood-annotation-allowed-classes.txt b/ravenwood/texts/ravenwood-annotation-allowed-classes.txt index 383e75bb5122..e202d0ecfa23 100644 --- a/ravenwood/texts/ravenwood-annotation-allowed-classes.txt +++ b/ravenwood/texts/ravenwood-annotation-allowed-classes.txt @@ -151,6 +151,10 @@ android.os.Looper android.os.Message android.os.MessageQueue android.os.MessageQueue_ravenwood +android.os.PerfettoTrace +android.os.PerfettoTrace$Category +android.os.PerfettoTrackEventExtra +android.os.PerfettoTrackEventExtra$NoOpBuilder android.os.PackageTagsList android.os.Parcel android.os.ParcelFileDescriptor |