tracing: pipeline_handler: Queue Requests

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@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2021-03-02 15:50:41 +00:00
parent 3620f25c61
commit a36cde7834
2 changed files with 12 additions and 0 deletions

View file

@ -48,6 +48,15 @@ TRACEPOINT_EVENT_INSTANCE(
) )
) )
TRACEPOINT_EVENT_INSTANCE(
libcamera,
request,
request_queue,
TP_ARGS(
libcamera::Request *, req
)
)
TRACEPOINT_EVENT_INSTANCE( TRACEPOINT_EVENT_INSTANCE(
libcamera, libcamera,
request, request,

View file

@ -16,6 +16,7 @@
#include "libcamera/internal/device_enumerator.h" #include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/log.h" #include "libcamera/internal/log.h"
#include "libcamera/internal/media_device.h" #include "libcamera/internal/media_device.h"
#include "libcamera/internal/tracepoints.h"
#include "libcamera/internal/utils.h" #include "libcamera/internal/utils.h"
/** /**
@ -375,6 +376,8 @@ const ControlList &PipelineHandler::properties(const Camera *camera) const
*/ */
int PipelineHandler::queueRequest(Request *request) int PipelineHandler::queueRequest(Request *request)
{ {
LIBCAMERA_TRACEPOINT(request_queue, request);
Camera *camera = request->camera_; Camera *camera = request->camera_;
CameraData *data = cameraData(camera); CameraData *data = cameraData(camera);
data->queuedRequests_.push_back(request); data->queuedRequests_.push_back(request);