From patchwork Tue Mar 2 15:50:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 11467 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id B6D56BD808 for ; Tue, 2 Mar 2021 15:50:47 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3CC7568A98; Tue, 2 Mar 2021 16:50:47 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="PRZLKbzO"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D240B68A7E for ; Tue, 2 Mar 2021 16:50:45 +0100 (CET) Received: from Q.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 4845F45D; Tue, 2 Mar 2021 16:50:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1614700245; bh=SNmP5byYXH7n+s5J78tSJLGXbr0stllxhHAscERxQBY=; h=From:To:Cc:Subject:Date:From; b=PRZLKbzOSA3wqooNYEN5A0MiEB9vHYd8ACAHXChriVeS+ztclemMFM44WxZsMNyxe VI7vYM6lIvvDqiryrJGKIu58hQ5QTul7XMZMmsVKqVenskVn8iswJg8SbD1K4n1XGh yzR/uuCGWQmLK3ikeT4JE2L2GZaX2vH7YVpLTX+w= From: Kieran Bingham To: libcamera devel Date: Tue, 2 Mar 2021 15:50:41 +0000 Message-Id: <20210302155041.110853-1-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] tracing: pipeline_handler: Queue Requests X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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 Reviewed-by: Paul Elder --- 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);