diff options
author | Xin Li <delphij@google.com> | 2024-01-17 22:14:56 -0800 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2024-01-17 22:14:56 -0800 |
commit | 9de4e8f41c7db9f184109f29087f754226052c9f (patch) | |
tree | 8f27290e597a9dbe6fa25e2fc256da98248d18ba | |
parent | ce39c0404fbdd75b98baab251460e63e3e8630f4 (diff) | |
parent | 36e717f3fc3312efb63ececad0d232b1a21f1a0f (diff) | |
download | tools-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.bp | 1 | ||||
-rw-r--r-- | linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto | 224 |
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 + } + } +} |