diff --git a/include/libcamera/internal/tracepoints/request.tp b/include/libcamera/internal/tracepoints/request.tp
index b295b44f..e0ac45ac 100644
--- a/include/libcamera/internal/tracepoints/request.tp
+++ b/include/libcamera/internal/tracepoints/request.tp
@@ -100,6 +100,16 @@ TRACEPOINT_EVENT_INSTANCE(
 	)
 )
 
+TRACEPOINT_EVENT_INSTANCE(
+	libcamera,
+	request_with_buffer,
+	request_add_buffer,
+	TP_ARGS(
+		libcamera::Request *, req,
+		libcamera::FrameBuffer *, buf
+	)
+)
+
 TRACEPOINT_EVENT_INSTANCE(
 	libcamera,
 	request_with_buffer,
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index 652b7b70..226c26b7 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -463,6 +463,8 @@ void Request::reuse(ReuseFlag flags)
 int Request::addBuffer(const Stream *stream, FrameBuffer *buffer,
 		       std::unique_ptr<Fence> fence)
 {
+	LIBCAMERA_TRACEPOINT(request_add_buffer, this, buffer);
+
 	if (!stream) {
 		LOG(Request, Error) << "Invalid stream reference";
 		return -EINVAL;
