# 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. # Based on trace_config_detailed.textproto # 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 } # perf 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: "linux.process_stats" target_buffer: 1 process_stats_config { proc_stats_poll_ms: 10000 } } } data_sources { config { name: "linux.perf" target_buffer: 2 perf_event_config { timebase { frequency: 80 } callstack_sampling { scope { target_cmdline: "android.tests.enforcepermission.tests" target_cmdline: "android.tests.enforcepermission.service" target_cmdline: "system_server" } kernel_frames: true } } } }