diff options
| author | 2025-02-10 13:47:08 +0000 | |
|---|---|---|
| committer | 2025-02-13 18:37:05 +0000 | |
| commit | 8551617b7d918fa2bed2ea77a4b1b53830bbeff7 (patch) | |
| tree | aa124dc1146bea42af5be1e363a58c31506b7c2b | |
| parent | f4240eef12eab542da8e48df916616fcee07f61c (diff) | |
Switched MQ tracing to proto from DebugAnnotations
This allows us to enable it in the field since we are
no longer using the loosely typed debug args.
Test: atest PerfettoTest
Test: atest TracePerfTest
Bug: 303199244
Flag: android.os.perfetto_sdk_tracing_v2
Change-Id: I958199dcffc0a597233b7c9df15fffee6d5b40d8
| -rw-r--r-- | apct-tests/perftests/core/src/android/os/TracePerfTest.java | 24 | ||||
| -rw-r--r-- | core/java/android/os/CombinedMessageQueue/MessageQueue.java | 10 | ||||
| -rw-r--r-- | core/java/android/os/Looper.java | 6 |
3 files changed, 36 insertions, 4 deletions
diff --git a/apct-tests/perftests/core/src/android/os/TracePerfTest.java b/apct-tests/perftests/core/src/android/os/TracePerfTest.java index bf7c96a3cb85..0b941c9d83c0 100644 --- a/apct-tests/perftests/core/src/android/os/TracePerfTest.java +++ b/apct-tests/perftests/core/src/android/os/TracePerfTest.java @@ -139,6 +139,30 @@ public class TracePerfTest { } } + @Test + public void testInstantPerfettoWithProto() { + PerfettoTrace.begin(FOO_CATEGORY, "message_queue_receive") + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, "foo") + .endNested() + .endProto() + .addTerminatingFlow(5) + .emit(); + + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + PerfettoTrace.begin(FOO_CATEGORY, "message_queue_receive") + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, "foo") + .endNested() + .endProto() + .addTerminatingFlow(5) + .emit(); + } + } + private static TraceConfig getTraceConfig(String cat) { BufferConfig bufferConfig = BufferConfig.newBuilder().setSizeKb(1024).build(); TrackEventConfig trackEventConfig = TrackEventConfig diff --git a/core/java/android/os/CombinedMessageQueue/MessageQueue.java b/core/java/android/os/CombinedMessageQueue/MessageQueue.java index 349a2f0a181d..3fdb41f7dd83 100644 --- a/core/java/android/os/CombinedMessageQueue/MessageQueue.java +++ b/core/java/android/os/CombinedMessageQueue/MessageQueue.java @@ -238,9 +238,13 @@ public final class MessageQueue { traceMessageCount(); PerfettoTrace.instant(PerfettoTrace.MQ_CATEGORY, "message_queue_send") .addFlow(msg.mEventId.get()) - .addArg("receiving_thread", mThread.getName()) - .addArg("delay", when - SystemClock.uptimeMillis()) - .addArg("what", msg.what) + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(2 /* receiving_thread_name */, mThread.getName()) + .addField(3 /* message_code */, msg.what) + .addField(4 /* message_delay_ms */, when - SystemClock.uptimeMillis()) + .endNested() + .endProto() .emit(); } diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java index d16e4473d55f..1329b90538bb 100644 --- a/core/java/android/os/Looper.java +++ b/core/java/android/os/Looper.java @@ -200,7 +200,11 @@ public final class Looper { } PerfettoTrace.begin(PerfettoTrace.MQ_CATEGORY, "message_queue_receive") - .addArg("sending_thread", msg.mSendingThreadName) + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, msg.mSendingThreadName) + .endNested() + .endProto() .addTerminatingFlow(msg.mEventId.get()) .emit(); |