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

Commit f89bf767 authored by Zimuzo Ezeozue's avatar Zimuzo Ezeozue
Browse files

Enable PerfettoTrace on ravenwood

Flag: EXEMPT host test change only
Bug: 303199244
Test: atest CtsOsTestCasesRavenwood
Change-Id: I1f4ebd3de7273924eebeedd5c4338db26fc3ea6a
parent 4a429a89
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -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);
            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.
         */
+19 −1
Original line number Diff line number Diff line
@@ -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,8 +763,10 @@ public final class PerfettoTrackEventExtra {

    private PerfettoTrackEventExtra() {
        mPtr = native_init();
        if (!RavenwoodEnvironment.getInstance().isRunningOnRavenwood()) {
            sRegistry.registerNativeAllocation(this, mPtr);
        }
    }

    /**
     * Returns the native pointer.
@@ -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;
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -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