diff --git a/include/libcamera/internal/tracepoints/meson.build b/include/libcamera/internal/tracepoints/meson.build
index 8410c205..a34135ce 100644
--- a/include/libcamera/internal/tracepoints/meson.build
+++ b/include/libcamera/internal/tracepoints/meson.build
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: CC0-1.0
 
 tracepoint_files = files([
+    'pipeline.tp',
     'request.tp',
 ])
diff --git a/include/libcamera/internal/tracepoints/pipeline.tp b/include/libcamera/internal/tracepoints/pipeline.tp
new file mode 100644
index 00000000..603f4a8c
--- /dev/null
+++ b/include/libcamera/internal/tracepoints/pipeline.tp
@@ -0,0 +1,25 @@
+TRACEPOINT_EVENT(
+	libcamera,
+	ipa_call_start,
+	TP_ARGS(
+		char *, pipe,
+		char *, func
+	),
+	TP_FIELDS(
+		ctf_string(pipeline_name, pipe)
+		ctf_string(function_name, func)
+	)
+)
+
+TRACEPOINT_EVENT(
+	libcamera,
+	ipa_call_finish,
+	TP_ARGS(
+		char *, pipe,
+		char *, func
+	),
+	TP_FIELDS(
+		ctf_string(pipeline_name, pipe)
+		ctf_string(function_name, func)
+	)
+)
