|  | ## Syscalls | 
|  | The enter and exit of all syscalls can be tracked in Perfetto traces. | 
|  |  | 
|  |  | 
|  | The following ftrace events need to added to the trace config to collect syscalls. | 
|  |  | 
|  | ```protobuf | 
|  | data_sources: { | 
|  | config { | 
|  | name: "linux.ftrace" | 
|  | ftrace_config { | 
|  | ftrace_events: "raw_syscalls/sys_enter" | 
|  | ftrace_events: "raw_syscalls/sys_exit" | 
|  | } | 
|  | } | 
|  | } | 
|  | ``` | 
|  |  | 
|  | ## Linux kernel tracing | 
|  | Perfetto integrates with [Linux kernel event tracing](https://www.kernel.org/doc/Documentation/trace/ftrace.txt). | 
|  | While Perfetto has special support for some events (for example see [CPU Scheduling](#cpu-scheduling)) Perfetto can collect arbitrary events. | 
|  | This config collects four Linux kernel events: | 
|  |  | 
|  | ```protobuf | 
|  | data_sources { | 
|  | config { | 
|  | name: "linux.ftrace" | 
|  | ftrace_config { | 
|  | ftrace_events: "ftrace/print" | 
|  | ftrace_events: "sched/sched_switch" | 
|  | ftrace_events: "task/task_newtask" | 
|  | ftrace_events: "task/task_rename" | 
|  | } | 
|  | } | 
|  | } | 
|  | ``` | 
|  |  | 
|  | The full configuration options for ftrace can be seen in [ftrace_config.proto](/protos/perfetto/config/ftrace/ftrace_config.proto). | 
|  |  | 
|  | ## Android system logs | 
|  |  | 
|  | ### Android logcat | 
|  | Include Android Logcat messages in the trace and view them in conjunction with other trace data. | 
|  |  | 
|  |  | 
|  |  | 
|  | You can configure which log buffers are included in the trace. If no buffers are specified, all will be included. | 
|  |  | 
|  | ```protobuf | 
|  | data_sources: { | 
|  | config { | 
|  | name: "android.log" | 
|  | android_log_config { | 
|  | log_ids: LID_DEFAULT | 
|  | log_ids: LID_SYSTEM | 
|  | log_ids: LID_CRASH | 
|  | } | 
|  | } | 
|  | } | 
|  | ``` | 
|  |  | 
|  | You 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`. | 
|  | For details about configuration options, see [android\_log\_config.proto](/protos/perfetto/config/android/android_log_config.proto). | 
|  |  | 
|  | The 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. | 
|  |  | 
|  | If 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: | 
|  |  | 
|  | ```sql | 
|  | select * from android_logs where tag = "perfetto" order by ts | 
|  | ``` | 
|  |  | 
|  | ### Android application tracing | 
|  | You can enable atrace through Perfetto. | 
|  |  | 
|  |  | 
|  |  | 
|  | Add required categories to `atrace_categories` and set `atrace_apps` to a specific app to collect userspace annotations from that app. | 
|  |  | 
|  | ```protobuf | 
|  | data_sources: { | 
|  | config { | 
|  | name: "linux.ftrace" | 
|  | ftrace_config { | 
|  | atrace_categories: "view" | 
|  | atrace_categories: "webview" | 
|  | atrace_categories: "wm" | 
|  | atrace_categories: "am" | 
|  | atrace_categories: "sm" | 
|  | atrace_apps: "com.android.phone" | 
|  | } | 
|  | } | 
|  | } | 
|  | ``` |