1*6dbdd20aSAndroid Build Coastguard Worker## Syscalls 2*6dbdd20aSAndroid Build Coastguard WorkerThe enter and exit of all syscalls can be tracked in Perfetto traces. 3*6dbdd20aSAndroid Build Coastguard Worker 4*6dbdd20aSAndroid Build Coastguard Worker 5*6dbdd20aSAndroid Build Coastguard WorkerThe following ftrace events need to added to the trace config to collect syscalls. 6*6dbdd20aSAndroid Build Coastguard Worker 7*6dbdd20aSAndroid Build Coastguard Worker```protobuf 8*6dbdd20aSAndroid Build Coastguard Workerdata_sources: { 9*6dbdd20aSAndroid Build Coastguard Worker config { 10*6dbdd20aSAndroid Build Coastguard Worker name: "linux.ftrace" 11*6dbdd20aSAndroid Build Coastguard Worker ftrace_config { 12*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "raw_syscalls/sys_enter" 13*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "raw_syscalls/sys_exit" 14*6dbdd20aSAndroid Build Coastguard Worker } 15*6dbdd20aSAndroid Build Coastguard Worker } 16*6dbdd20aSAndroid Build Coastguard Worker} 17*6dbdd20aSAndroid Build Coastguard Worker``` 18*6dbdd20aSAndroid Build Coastguard Worker 19*6dbdd20aSAndroid Build Coastguard Worker## Linux kernel tracing 20*6dbdd20aSAndroid Build Coastguard WorkerPerfetto integrates with [Linux kernel event tracing](https://www.kernel.org/doc/Documentation/trace/ftrace.txt). 21*6dbdd20aSAndroid Build Coastguard WorkerWhile Perfetto has special support for some events (for example see [CPU Scheduling](#cpu-scheduling)) Perfetto can collect arbitrary events. 22*6dbdd20aSAndroid Build Coastguard WorkerThis config collects four Linux kernel events: 23*6dbdd20aSAndroid Build Coastguard Worker 24*6dbdd20aSAndroid Build Coastguard Worker```protobuf 25*6dbdd20aSAndroid Build Coastguard Workerdata_sources { 26*6dbdd20aSAndroid Build Coastguard Worker config { 27*6dbdd20aSAndroid Build Coastguard Worker name: "linux.ftrace" 28*6dbdd20aSAndroid Build Coastguard Worker ftrace_config { 29*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "ftrace/print" 30*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "sched/sched_switch" 31*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "task/task_newtask" 32*6dbdd20aSAndroid Build Coastguard Worker ftrace_events: "task/task_rename" 33*6dbdd20aSAndroid Build Coastguard Worker } 34*6dbdd20aSAndroid Build Coastguard Worker } 35*6dbdd20aSAndroid Build Coastguard Worker} 36*6dbdd20aSAndroid Build Coastguard Worker``` 37*6dbdd20aSAndroid Build Coastguard Worker 38*6dbdd20aSAndroid Build Coastguard WorkerThe full configuration options for ftrace can be seen in [ftrace_config.proto](/protos/perfetto/config/ftrace/ftrace_config.proto). 39*6dbdd20aSAndroid Build Coastguard Worker 40*6dbdd20aSAndroid Build Coastguard Worker## Android system logs 41*6dbdd20aSAndroid Build Coastguard Worker 42*6dbdd20aSAndroid Build Coastguard Worker### Android logcat 43*6dbdd20aSAndroid Build Coastguard WorkerInclude Android Logcat messages in the trace and view them in conjunction with other trace data. 44*6dbdd20aSAndroid Build Coastguard Worker 45*6dbdd20aSAndroid Build Coastguard Worker 46*6dbdd20aSAndroid Build Coastguard Worker 47*6dbdd20aSAndroid Build Coastguard WorkerYou can configure which log buffers are included in the trace. If no buffers are specified, all will be included. 48*6dbdd20aSAndroid Build Coastguard Worker 49*6dbdd20aSAndroid Build Coastguard Worker```protobuf 50*6dbdd20aSAndroid Build Coastguard Workerdata_sources: { 51*6dbdd20aSAndroid Build Coastguard Worker config { 52*6dbdd20aSAndroid Build Coastguard Worker name: "android.log" 53*6dbdd20aSAndroid Build Coastguard Worker android_log_config { 54*6dbdd20aSAndroid Build Coastguard Worker log_ids: LID_DEFAULT 55*6dbdd20aSAndroid Build Coastguard Worker log_ids: LID_SYSTEM 56*6dbdd20aSAndroid Build Coastguard Worker log_ids: LID_CRASH 57*6dbdd20aSAndroid Build Coastguard Worker } 58*6dbdd20aSAndroid Build Coastguard Worker } 59*6dbdd20aSAndroid Build Coastguard Worker} 60*6dbdd20aSAndroid Build Coastguard Worker``` 61*6dbdd20aSAndroid Build Coastguard Worker 62*6dbdd20aSAndroid Build Coastguard WorkerYou may also want to add filtering on a tags using the `filter_tags` parameter or set a min priority to be included in the trace using `min_prio`. 63*6dbdd20aSAndroid Build Coastguard WorkerFor details about configuration options, see [android\_log\_config.proto](/protos/perfetto/config/android/android_log_config.proto). 64*6dbdd20aSAndroid Build Coastguard Worker 65*6dbdd20aSAndroid Build Coastguard WorkerThe logs can be investigated along with other information in the trace using the [Perfetto UI](https://ui.perfetto.dev) as shown in the screenshot above. 66*6dbdd20aSAndroid Build Coastguard Worker 67*6dbdd20aSAndroid Build Coastguard WorkerIf using the `trace_processor`, these logs will be in the [android\_logs](/docs/analysis/sql-tables.autogen#android_logs) table. To look at the logs with the tag ‘perfetto’ you would use the following query: 68*6dbdd20aSAndroid Build Coastguard Worker 69*6dbdd20aSAndroid Build Coastguard Worker```sql 70*6dbdd20aSAndroid Build Coastguard Workerselect * from android_logs where tag = "perfetto" order by ts 71*6dbdd20aSAndroid Build Coastguard Worker``` 72*6dbdd20aSAndroid Build Coastguard Worker 73*6dbdd20aSAndroid Build Coastguard Worker### Android application tracing 74*6dbdd20aSAndroid Build Coastguard WorkerYou can enable atrace through Perfetto. 75*6dbdd20aSAndroid Build Coastguard Worker 76*6dbdd20aSAndroid Build Coastguard Worker 77*6dbdd20aSAndroid Build Coastguard Worker 78*6dbdd20aSAndroid Build Coastguard WorkerAdd required categories to `atrace_categories` and set `atrace_apps` to a specific app to collect userspace annotations from that app. 79*6dbdd20aSAndroid Build Coastguard Worker 80*6dbdd20aSAndroid Build Coastguard Worker```protobuf 81*6dbdd20aSAndroid Build Coastguard Workerdata_sources: { 82*6dbdd20aSAndroid Build Coastguard Worker config { 83*6dbdd20aSAndroid Build Coastguard Worker name: "linux.ftrace" 84*6dbdd20aSAndroid Build Coastguard Worker ftrace_config { 85*6dbdd20aSAndroid Build Coastguard Worker atrace_categories: "view" 86*6dbdd20aSAndroid Build Coastguard Worker atrace_categories: "webview" 87*6dbdd20aSAndroid Build Coastguard Worker atrace_categories: "wm" 88*6dbdd20aSAndroid Build Coastguard Worker atrace_categories: "am" 89*6dbdd20aSAndroid Build Coastguard Worker atrace_categories: "sm" 90*6dbdd20aSAndroid Build Coastguard Worker atrace_apps: "com.android.phone" 91*6dbdd20aSAndroid Build Coastguard Worker } 92*6dbdd20aSAndroid Build Coastguard Worker } 93*6dbdd20aSAndroid Build Coastguard Worker} 94*6dbdd20aSAndroid Build Coastguard Worker```