Cleanup: Move instrumentation/ headers to include/instrumentation/
[lttng-modules.git] / include / instrumentation / syscalls / README
diff --git a/include/instrumentation/syscalls/README b/include/instrumentation/syscalls/README
new file mode 100644 (file)
index 0000000..6dbc640
--- /dev/null
@@ -0,0 +1,33 @@
+LTTng system call tracing
+
+1) lttng-syscall-extractor
+
+You need to build a kernel with CONFIG_FTRACE_SYSCALLS=y and
+CONFIG_KALLSYMS_ALL=y for extraction. Apply the linker patch to get your
+kernel to keep the system call metadata after boot.  Then build and load
+the LTTng syscall extractor module. The module will fail to load (this
+is expected). See the dmesg output for system call metadata.
+
+2) Generate system call TRACE_EVENT().
+
+Take the dmesg data and feed it to lttng-syscalls-generate-headers.sh from
+the instrumentation/syscalls directory. See the script header for usage
+example. It should be run for both the integers and pointers types.
+
+After these are created, you just need to follow the new system call additions,
+no need to regenerate the whole thing, since system calls are only appended to.
+
+3) Override headers
+
+You need to provide override headers (even if they don't contain
+overrides) for each architecture. Those are meant to contain manual
+overrides for specific system calls for cases where the script do not
+generate the correct typing for specific system calls.
+
+4) Integrating the new architecture, updating architecture header
+
+Edit instrumentation/syscalls/headers/syscalls_integers.h and
+syscalls_pointers.h. Add the new architecture
+(e.g. CONFIG_X86_64) to the newly-generated headers
+(e.g. changing the current x86-64-syscalls-3.10.0-rc7_<CLASS>.h into
+x86-64-syscalls-3.13.7_<CLASS>.h), then rebuild lttng-modules.
This page took 0.025512 seconds and 4 git commands to generate.