| # 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 |
| } |
| } |
| } |
| } |