[libcamera-devel] [PATCH] tracing: pipeline_handler: Queue Requests
Kieran Bingham
kieran.bingham at ideasonboard.com
Tue Mar 2 16:50:41 CET 2021
Add tracing to the base pipeline handler class to track when requests are queued.
Tracing is already available for other Request operations, but queuing a Request
is not an operation handled by the Request itself.
Add the tracepoint to the PipelineHandler::queueRequest() so the lifetime of a
Request can be viewed when tracing.
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
include/libcamera/internal/tracepoints/request.tp | 9 +++++++++
src/libcamera/pipeline_handler.cpp | 3 +++
2 files changed, 12 insertions(+)
diff --git a/include/libcamera/internal/tracepoints/request.tp b/include/libcamera/internal/tracepoints/request.tp
index 7ffc606182f6..9e872951374d 100644
--- a/include/libcamera/internal/tracepoints/request.tp
+++ b/include/libcamera/internal/tracepoints/request.tp
@@ -48,6 +48,15 @@ TRACEPOINT_EVENT_INSTANCE(
)
)
+TRACEPOINT_EVENT_INSTANCE(
+ libcamera,
+ request,
+ request_queue,
+ TP_ARGS(
+ libcamera::Request *, req
+ )
+)
+
TRACEPOINT_EVENT_INSTANCE(
libcamera,
request,
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index f72d26c793cd..d22991d318c9 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -16,6 +16,7 @@
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/media_device.h"
+#include "libcamera/internal/tracepoints.h"
#include "libcamera/internal/utils.h"
/**
@@ -375,6 +376,8 @@ const ControlList &PipelineHandler::properties(const Camera *camera) const
*/
int PipelineHandler::queueRequest(Request *request)
{
+ LIBCAMERA_TRACEPOINT(request_queue, request);
+
Camera *camera = request->camera_;
CameraData *data = cameraData(camera);
data->queuedRequests_.push_back(request);
--
2.25.1
More information about the libcamera-devel
mailing list