# A very good trace config for most Android Performance tracing.
# Buffer 0: For most continuous data (ftrace, power, sys_stats, frametimeline)
buffers: {
    size_kb: 260096
    fill_policy: RING_BUFFER
}
# Buffer 1: For process_stats
buffers: {
    size_kb: 2048
    fill_policy: RING_BUFFER
}
# Buffer 2: For logging
buffers: {
    size_kb: 2048
    fill_policy: RING_BUFFER
}
# Buffer 3: For packages list and system info
buffers: {
    size_kb: 1024
    fill_policy: RING_BUFFER
}
# Buffer 4: Stastd atoms
buffers: {
    size_kb: 256
    fill_policy: RING_BUFFER
}
data_sources {
  config {
    name: "track_event"
    target_buffer: 0
    track_event_config {
      disabled_categories:"*"
      enabled_categories: "servicemanager"
      enabled_categories: "gfx"
      enabled_categories: "mq"
    }
  }
}
data_sources: {
    config {
        name: "linux.process_stats"
        target_buffer: 1
        process_stats_config {
            scan_all_processes_on_start: true
            # As we're primarily interested in memory stats, we don't need to
            # poll very often as we also have the kmem/rss_stat ftrace event.
            proc_stats_poll_ms: 10000
        }
    }
}
data_sources: {
    config {
        name: "linux.sys_stats"
        target_buffer: 0
        sys_stats_config {
            psi_period_ms: 100
            cpufreq_period_ms: 1000
        }
    }
}
data_sources: {
    config {
        name: "linux.system_info"
        target_buffer: 3
    }
}
data_sources: {
    config {
        name: "android.surfaceflinger.frametimeline"
        target_buffer: 0
    }
}
data_sources: {
    config {
        name: "android.power"
        target_buffer: 0
        android_power_config {
            battery_poll_ms: 500
            collect_power_rails: true
        }
    }
}
data_sources: {
    config {
        name: "android.log"
        target_buffer: 2
        android_log_config {
            log_ids: LID_DEFAULT
        }
    }
}
data_sources: {
    config {
        name: "android.packages_list"
        target_buffer: 3
    }
}
data_sources: {
    config {
        name: "android.system_property"
        target_buffer: 3
        android_system_property_config {
            # No need to poll often, as boot image profiling properties are set
            # once during the boot sequence.
            poll_ms: 30000
            property_name: "debug.tracing.profile_boot_classpath"
            property_name: "debug.tracing.profile_system_server"
        }
    }
}
data_sources: {
    config {
        name: "linux.ftrace"
        target_buffer: 0
        ftrace_config {
            ftrace_events: "sched/sched_switch"
            ftrace_events: "power/suspend_resume"
            ftrace_events: "sched/sched_wakeup_new"
            ftrace_events: "sched/sched_waking"
            ftrace_events: "power/cpu_frequency"
            ftrace_events: "power/cpu_idle"
            ftrace_events: "mm_event/mm_event_record"
            ftrace_events: "kmem/rss_stat"
            ftrace_events: "ion/ion_stat"
            ftrace_events: "dmabuf_heap/dma_heap_stat"
            ftrace_events: "kmem/ion_heap_grow"
            ftrace_events: "kmem/ion_heap_shrink"
            ftrace_events: "sched/sched_process_exit"
            ftrace_events: "sched/sched_process_free"
            ftrace_events: "task/task_newtask"
            ftrace_events: "task/task_rename"
            ftrace_events: "lowmemorykiller/lowmemory_kill"
            ftrace_events: "oom/oom_score_adj_update"
            ftrace_events: "sched/sched_blocked_reason"
            ftrace_events: "workqueue/*"
            ftrace_events: "vmscan/*"
            ftrace_events: "ftrace/print"
            ftrace_events: "power/wakeup_source_activate"
            ftrace_events: "power/wakeup_source_deactivate"
            atrace_categories: "aidl"
            atrace_categories: "am"
            atrace_categories: "dalvik"
            atrace_categories: "binder_driver"
            atrace_categories: "bionic"
            atrace_categories: "camera"
            atrace_categories: "gfx"
            atrace_categories: "hal"
            atrace_categories: "input"
            atrace_categories: "network"
            atrace_categories: "pm"
            atrace_categories: "power"
            atrace_categories: "res"
            atrace_categories: "sm"
            atrace_categories: "ss"
            atrace_categories: "video"
            atrace_categories: "view"
            atrace_categories: "wm"
            atrace_apps: "lmkd"
            atrace_apps: "*"
            buffer_size_kb: 16384
            drain_period_ms: 250
            throttle_rss_stat: true
            symbolize_ksyms: true
            ksyms_mem_policy: KSYMS_RETAIN
            disable_generic_events: true
            compact_sched { enabled: true }
        }
    }
}
data_sources: {
    config {
        name: "android.statsd"
        target_buffer: 4
        statsd_tracing_config {
            push_atom_id: ATOM_SCHEDULED_JOB_STATE_CHANGED
        }
    }
}
data_sources {
    config {
        name: "android.app_wakelocks"
        target_buffer: 0
    }
}
duration_ms: 1800000
write_into_file: true
file_write_period_ms: 5000
max_file_size_bytes: 1000000000
flush_period_ms: 30000
incremental_state_config {
    clear_period_ms: 5000
}
