Add and use tracepoints in Request. Requests are core to libcamera operation, thus detecting delays in their processing is important, and serves as a good usage example of tracepoints. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
69 lines
1.2 KiB
Plaintext
69 lines
1.2 KiB
Plaintext
#include <libcamera/buffer.h>
|
|
#include <libcamera/request.h>
|
|
|
|
TRACEPOINT_EVENT_CLASS(
|
|
libcamera,
|
|
request,
|
|
TP_ARGS(
|
|
libcamera::Request *, req
|
|
),
|
|
TP_FIELDS(
|
|
ctf_integer_hex(uintptr_t, request, reinterpret_cast<uintptr_t>(req))
|
|
ctf_integer(uint64_t, cookie, req->cookie())
|
|
ctf_enum(libcamera, request_status, uint32_t, status, req->status())
|
|
)
|
|
)
|
|
|
|
TRACEPOINT_EVENT_INSTANCE(
|
|
libcamera,
|
|
request,
|
|
request_construct,
|
|
TP_ARGS(
|
|
libcamera::Request *, req
|
|
)
|
|
)
|
|
|
|
TRACEPOINT_EVENT_INSTANCE(
|
|
libcamera,
|
|
request,
|
|
request_destroy,
|
|
TP_ARGS(
|
|
libcamera::Request *, req
|
|
)
|
|
)
|
|
|
|
TRACEPOINT_EVENT_INSTANCE(
|
|
libcamera,
|
|
request,
|
|
request_reuse,
|
|
TP_ARGS(
|
|
libcamera::Request *, req
|
|
)
|
|
)
|
|
|
|
TRACEPOINT_EVENT_INSTANCE(
|
|
libcamera,
|
|
request,
|
|
request_complete,
|
|
TP_ARGS(
|
|
libcamera::Request *, req
|
|
)
|
|
)
|
|
|
|
|
|
TRACEPOINT_EVENT(
|
|
libcamera,
|
|
request_complete_buffer,
|
|
TP_ARGS(
|
|
libcamera::Request *, req,
|
|
libcamera::FrameBuffer *, buf
|
|
),
|
|
TP_FIELDS(
|
|
ctf_integer_hex(uintptr_t, request, reinterpret_cast<uintptr_t>(req))
|
|
ctf_integer(uint64_t, cookie, req->cookie())
|
|
ctf_integer(int, status, req->status())
|
|
ctf_integer_hex(uintptr_t, buffer, reinterpret_cast<uintptr_t>(buf))
|
|
ctf_enum(libcamera, buffer_status, uint32_t, buf_status, buf->metadata().status)
|
|
)
|
|
)
|