diff options
Diffstat (limited to 'linux-x86_64/perfetto/configs')
-rw-r--r-- | linux-x86_64/perfetto/configs/trace_config_detailed_heapdump.textproto | 224 |
1 files changed, 224 insertions, 0 deletions
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 + } + } +} |