summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-01-17 22:14:56 -0800
committerXin Li <delphij@google.com>2024-01-17 22:14:56 -0800
commit9de4e8f41c7db9f184109f29087f754226052c9f (patch)
tree8f27290e597a9dbe6fa25e2fc256da98248d18ba
parentce39c0404fbdd75b98baab251460e63e3e8630f4 (diff)
parent36e717f3fc3312efb63ececad0d232b1a21f1a0f (diff)
downloadtools-9de4e8f41c7db9f184109f29087f754226052c9f.tar.gz
Merge Android 24Q1 Release (ab/11220357)
Bug: 319669529 Merged-In: I2b9ad4c909006a90d8f387c788d18d6acec28231 Change-Id: Ic3cf59e92f0423d6ed37d7280dc67f1973bd79a2
-rw-r--r--linux-x86_64/perfetto/Android.bp1
-rw-r--r--linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto224
2 files changed, 225 insertions, 0 deletions
diff --git a/linux-x86_64/perfetto/Android.bp b/linux-x86_64/perfetto/Android.bp
index 34eadfc6d..0db5a0323 100644
--- a/linux-x86_64/perfetto/Android.bp
+++ b/linux-x86_64/perfetto/Android.bp
@@ -21,6 +21,7 @@ filegroup {
name: "perfetto_artifacts",
srcs: ["trace_processor_shell",
"configs/trace_config_detailed.textproto",
+ "configs/trace_config_detailed_heapdump.textproto",
"configs/long_trace_config.textproto",
"configs/long_trace_binder_config.textproto"],
}
diff --git a/linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto b/linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto
new file mode 100644
index 000000000..2da007044
--- /dev/null
+++ b/linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto
@@ -0,0 +1,224 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# proto-message: TraceConfig
+
+# Enable periodic flushing of the trace buffer into the output file.
+write_into_file: true
+
+# Writes the userspace buffer into the file every 1s.
+file_write_period_ms: 1000
+
+# See b/126487238 - we need to guarantee ordering of events.
+flush_period_ms: 10000
+
+# The trace buffers needs to be big enough to hold |file_write_period_ms| of
+# trace data. The trace buffer sizing depends on the number of trace categories
+# enabled and the device activity.
+
+# RSS events
+buffers {
+ size_kb: 32768
+ fill_policy: RING_BUFFER
+}
+
+# procfs polling
+buffers {
+ size_kb: 8192
+ fill_policy: RING_BUFFER
+}
+
+# heapprofd memory
+buffers {
+ size_kb: 32768
+ fill_policy: RING_BUFFER
+}
+
+# java hprof memory
+buffers {
+ size_kb: 65536
+ fill_policy: RING_BUFFER
+}
+
+data_sources {
+ config {
+ name: "linux.ftrace"
+ target_buffer: 0
+ ftrace_config {
+ throttle_rss_stat: true
+ # These parameters affect only the kernel trace buffer size and how
+ # frequently it gets moved into the userspace buffer defined above.
+ buffer_size_kb: 16384
+ drain_period_ms: 250
+
+ # Store certain high-volume "sched" ftrace events in a denser format
+ # (falling back to the default format if not supported by the tracer).
+ compact_sched {
+ enabled: true
+ }
+
+ # Enables symbol name resolution against /proc/kallsyms
+ symbolize_ksyms: true
+ # Parse kallsyms before acknowledging that the ftrace data source has been started. In
+ # combination with "perfetto --background-wait" as the consumer, it lets us defer the
+ # test we're tracing until after the cpu has quieted down from the cpu-bound kallsyms parsing.
+ initialize_ksyms_synchronously_for_testing: true
+ # Avoid re-parsing kallsyms on every test run, as it takes 200-500ms per run. See b/239951079
+ ksyms_mem_policy: KSYMS_RETAIN
+
+ # We need to do process tracking to ensure kernel ftrace events targeted at short-lived
+ # threads are associated correctly
+ ftrace_events: "task/task_newtask"
+ ftrace_events: "task/task_rename"
+ ftrace_events: "sched/sched_process_exit"
+ ftrace_events: "sched/sched_process_free"
+
+ # Memory events
+ ftrace_events: "rss_stat"
+ ftrace_events: "ion_heap_shrink"
+ ftrace_events: "ion_heap_grow"
+ ftrace_events: "ion/ion_stat"
+ ftrace_events: "dmabuf_heap/dma_heap_stat"
+ ftrace_events: "oom_score_adj_update"
+ ftrace_events: "gpu_mem/gpu_mem_total"
+ ftrace_events: "fastrpc/fastrpc_dma_stat"
+
+ # Power events
+ ftrace_events: "power/suspend_resume"
+ ftrace_events: "power/cpu_frequency"
+ ftrace_events: "power/cpu_idle"
+ ftrace_events: "power/gpu_frequency"
+
+ # Old (kernel) LMK
+ ftrace_events: "lowmemorykiller/lowmemory_kill"
+
+ atrace_apps: "*"
+
+ atrace_categories: "am"
+ atrace_categories: "aidl"
+ atrace_categories: "bionic"
+ atrace_categories: "camera"
+ atrace_categories: "wm"
+ atrace_categories: "dalvik"
+ atrace_categories: "sched"
+ atrace_categories: "freq"
+ atrace_categories: "gfx"
+ atrace_categories: "view"
+ atrace_categories: "webview"
+ atrace_categories: "input"
+ atrace_categories: "hal"
+ atrace_categories: "binder_driver"
+ atrace_categories: "sync"
+ atrace_categories: "workq"
+ atrace_categories: "res"
+ atrace_categories: "power"
+
+ }
+ }
+}
+
+data_sources: {
+ config {
+ name: "android.gpu.memory"
+ target_buffer: 0
+ }
+}
+
+data_sources {
+ config {
+ name: "linux.process_stats"
+ target_buffer: 1
+ process_stats_config {
+ proc_stats_poll_ms: 10000
+ }
+ }
+}
+
+data_sources {
+ config {
+ name: "linux.sys_stats"
+ target_buffer: 1
+ sys_stats_config {
+ meminfo_period_ms: 1000
+ meminfo_counters: MEMINFO_MEM_TOTAL
+ meminfo_counters: MEMINFO_MEM_FREE
+ meminfo_counters: MEMINFO_MEM_AVAILABLE
+ meminfo_counters: MEMINFO_BUFFERS
+ meminfo_counters: MEMINFO_CACHED
+ meminfo_counters: MEMINFO_SWAP_CACHED
+ meminfo_counters: MEMINFO_ACTIVE
+ meminfo_counters: MEMINFO_INACTIVE
+ meminfo_counters: MEMINFO_ACTIVE_ANON
+ meminfo_counters: MEMINFO_INACTIVE_ANON
+ meminfo_counters: MEMINFO_ACTIVE_FILE
+ meminfo_counters: MEMINFO_INACTIVE_FILE
+ meminfo_counters: MEMINFO_UNEVICTABLE
+ meminfo_counters: MEMINFO_SWAP_TOTAL
+ meminfo_counters: MEMINFO_SWAP_FREE
+ meminfo_counters: MEMINFO_DIRTY
+ meminfo_counters: MEMINFO_WRITEBACK
+ meminfo_counters: MEMINFO_ANON_PAGES
+ meminfo_counters: MEMINFO_MAPPED
+ meminfo_counters: MEMINFO_SHMEM
+ }
+ }
+}
+
+data_sources {
+ config {
+ name: "android.heapprofd"
+ target_buffer: 2
+ heapprofd_config {
+ sampling_interval_bytes: 16384
+ process_cmdline: "system_server"
+ process_cmdline: "com.android.systemui"
+ process_cmdline: "com.google.android.apps.nexuslauncher"
+ process_cmdline: "/system/bin/surfaceflinger"
+ no_startup: true
+ shmem_size_bytes: 16777216
+ }
+ }
+}
+
+data_sources {
+ config {
+ name: "android.java_hprof"
+ target_buffer: 3
+ java_hprof_config {
+ process_cmdline: "system_server"
+ process_cmdline: "com.android.systemui"
+ process_cmdline: "com.google.android.apps.nexuslauncher"
+ }
+ }
+}
+
+data_sources: {
+ config: {
+ name: "android.surfaceflinger.frametimeline"
+ }
+}
+
+data_sources: {
+ config {
+ name: "android.power"
+ target_buffer: 1
+ android_power_config {
+ battery_poll_ms: 1000
+ collect_power_rails: true
+ battery_counters: BATTERY_COUNTER_CAPACITY_PERCENT
+ battery_counters: BATTERY_COUNTER_CHARGE
+ battery_counters: BATTERY_COUNTER_CURRENT
+ }
+ }
+}