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

Commit 1a66960c authored by Pablo Gamito's avatar Pablo Gamito Committed by Android (Google) Code Review
Browse files

Merge "Add shmem_size_hint_kb to PerfettoProducerInitArgs" into main

parents c978f307 143ef7f3
Loading
Loading
Loading
Loading
+14 −3
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import java.lang.annotation.RetentionPolicy;
 */
 */
public class InitArguments {
public class InitArguments {
    public final @PerfettoBackend int backends;
    public final @PerfettoBackend int backends;
    public final int shmemSizeHintKb;


    /**
    /**
     * @hide
     * @hide
@@ -44,11 +45,21 @@ public class InitArguments {
    // on Linux/Android/Mac uses a named UNIX socket).
    // on Linux/Android/Mac uses a named UNIX socket).
    public static final int PERFETTO_BACKEND_SYSTEM = (1 << 1);
    public static final int PERFETTO_BACKEND_SYSTEM = (1 << 1);


    public static InitArguments DEFAULTS = new InitArguments(PERFETTO_BACKEND_SYSTEM);
    public static InitArguments DEFAULTS = new InitArguments(PERFETTO_BACKEND_SYSTEM, 0);


    public static InitArguments TESTING = new InitArguments(PERFETTO_BACKEND_IN_PROCESS);
    public static InitArguments TESTING = new InitArguments(PERFETTO_BACKEND_IN_PROCESS, 0);


    public InitArguments(@PerfettoBackend int backends) {
    /**
     * Perfetto initialization arguments.
     *
     * @param backends Bitwise-or of backends that should be enabled.
     * @param shmemSizeHintKb [Optional] Tune the size of the shared memory buffer between the
     *  current process and the service backend(s). This is a trade-off between memory footprint and
     *  the ability to sustain bursts of trace writes. If set, the value must be a multiple of 4KB.
     *  The value can be ignored if larger than kMaxShmSize (32MB) or not a multiple of 4KB.
     */
    public InitArguments(@PerfettoBackend int backends, int shmemSizeHintKb) {
        this.backends = backends;
        this.backends = backends;
        this.shmemSizeHintKb = shmemSizeHintKb;
    }
    }
}
}
+2 −2
Original line number Original line Diff line number Diff line
@@ -27,8 +27,8 @@ public class Producer {
     * @param args arguments on how to initialize the Perfetto producer.
     * @param args arguments on how to initialize the Perfetto producer.
     */
     */
    public static void init(InitArguments args) {
    public static void init(InitArguments args) {
        nativePerfettoProducerInit(args.backends);
        nativePerfettoProducerInit(args.backends, args.shmemSizeHintKb);
    }
    }


    private static native void nativePerfettoProducerInit(int backends);
    private static native void nativePerfettoProducerInit(int backends, int shmemSizeHintKb);
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -34,15 +34,17 @@


namespace android {
namespace android {


void perfettoProducerInit(JNIEnv* env, jclass clazz, int backends) {
void perfettoProducerInit(JNIEnv* env, jclass clazz, PerfettoBackendTypes backends,
                          uint32_t shmem_size_hint_kb) {
    struct PerfettoProducerInitArgs args = PERFETTO_PRODUCER_INIT_ARGS_INIT();
    struct PerfettoProducerInitArgs args = PERFETTO_PRODUCER_INIT_ARGS_INIT();
    args.backends = (PerfettoBackendTypes)backends;
    args.backends = backends;
    args.shmem_size_hint_kb = shmem_size_hint_kb;
    PerfettoProducerInit(args);
    PerfettoProducerInit(args);
}
}


const JNINativeMethod gMethods[] = {
const JNINativeMethod gMethods[] = {
        /* name, signature, funcPtr */
        /* name, signature, funcPtr */
        {"nativePerfettoProducerInit", "(I)V", (void*)perfettoProducerInit},
        {"nativePerfettoProducerInit", "(II)V", (void*)perfettoProducerInit},
};
};


int register_android_tracing_PerfettoProducer(JNIEnv* env) {
int register_android_tracing_PerfettoProducer(JNIEnv* env) {