traced_perf: allow collection and symbolization of kernel frames

If a config asks for kernel frames, we include PERF_SAMPLE_CALLCHAIN in
the event config. The kernel unwinds its own frames, and we only need to
symbolize them in the unwinder, using the kallsyms symbolizer that was
added for traced_probes.

The kernel frames are output as part of the normal callstack, and can
be further identified by having a magical "kernel" string for their
mapping name. This is similar to what we do for synthetic error frames.

Tested with aosp/1496216 for the SELinux changes around /proc/kallsyms
access on android.

Bug: 173124818
Change-Id: I05ef78621d00c60e05bb4833c63505c910a0928a
diff --git a/Android.bp b/Android.bp
index 1756f7b..65c9f37 100644
--- a/Android.bp
+++ b/Android.bp
@@ -8844,6 +8844,7 @@
     ":perfetto_src_profiling_perf_traced_perf_main",
     ":perfetto_src_profiling_perf_unwinding",
     ":perfetto_src_protozero_protozero",
+    ":perfetto_src_traced_probes_ftrace_kallsyms_kallsyms",
     ":perfetto_src_tracing_common",
     ":perfetto_src_tracing_core_core",
     ":perfetto_src_tracing_core_service",