Cleanup: Move patches.i to include/generated/
[lttng-modules.git] / README.md
index 93e2dd350748d100f09e51fcc12742f0464f1dde..7b04cd83b04991153ce8f7282ef3203a24489661 100644 (file)
--- a/README.md
+++ b/README.md
@@ -13,9 +13,9 @@ distribution kernel, with no need for additional patches.
 Other notable features:
 
   - Produces [CTF](http://www.efficios.com/ctf)
-    (Common Trace Format) natively.
+    (Common Trace Format) natively,
   - Tracepoints, function tracer, CPU Performance Monitoring Unit (PMU)
-    counters, kprobes, and kretprobes support.
+    counters, kprobes, and kretprobes support,
   - Have the ability to attach _context_ information to events in the
     trace (e.g., any PMU counter, PID, PPID, TID, command name, etc).
     All the extra information fields to be collected with events are
@@ -45,9 +45,10 @@ kernel, do:
 ### Kernel built-in support
 
 It is also possible to build these modules as part of a kernel image. Simply
-run the [`built-in.sh`](built-in.sh) script with the path to your kernel
-source directory as an argument.  It will symlink the lttng-modules directory
-in the kernel sources and add an include in the kernel Makefile.
+run the [`scripts/built-in.sh`](scripts/built-in.sh) script with the path to
+your kernel source directory as an argument.  It will symlink the
+lttng-modules directory in the kernel sources and add an include in the kernel
+Makefile.
 
 Then configure your kernel as usual and enable the `CONFIG_LTTNG` option.
 
@@ -57,14 +58,15 @@ Then configure your kernel as usual and enable the `CONFIG_LTTNG` option.
 Make sure your target kernel has the following config options enabled:
 
   - `CONFIG_MODULES`: loadable module support (not strictly required
-     when built into the kernel)
+     when built into the kernel),
   - `CONFIG_KALLSYMS`: see files in [`wrapper`](wrapper); this is
      necessary until the few required missing symbols are exported to GPL
-     modules from mainline
-  - `CONFIG_HIGH_RES_TIMERS`: needed for LTTng 2.x clock source
+     modules from mainline,
+  - `CONFIG_HIGH_RES_TIMERS`: needed for LTTng 2.x clock source,
   - `CONFIG_TRACEPOINTS`: kernel tracepoint instrumentation
      (enabled as a side-effect of any of the perf/ftrace/blktrace
-     instrumentation features)
+     instrumentation features).
+  - `CONFIG_KPROBES` (5.7+): use kallsyms for kernel 5.7 and newer.
 
 
 ### Supported (optional) kernel config options
@@ -93,6 +95,19 @@ available from LTTng:
   - `CONFIG_KALLSYMS_ALL`: state dump of mapping between block device
     number and name
 
+Customization/Extension
+-----------------------
+
+The lttng-modules source includes definitions for the actual callback
+functions that will be attached to the kernel tracepoints by lttng.
+The lttng-modules project implements its own macros generating these
+callbacks: the LTTNG_TRACEPOINT_EVENT macro family found in
+instrumentation/events/lttng-module/. In order to show up in a
+lttng-modules trace, a kernel tracepoint must be defined within the
+kernel tree, and also defined within lttng-modules with the
+LTTNG_TRACEPOINT_EVENT macro family. Customizations or extensions must
+be done by modifying instances of these macros within the lttng-modules
+source.
 
 Usage
 -----
@@ -106,7 +121,7 @@ to print traces as a human-readable text log.
 Support
 -------
 
-Linux kernels >= 2.6.36 are supported.
+Linux kernels >= 3.0 are supported.
 
 
 Notes
This page took 0.024636 seconds and 4 git commands to generate.