[{"id":34921,"web_url":"https://patchwork.libcamera.org/comment/34921/","msgid":"<urwjzrmk67nhkauqu7752pqd4yeptx5z2vcqysfz4kffcoopuh@gfcax24hfser>","date":"2025-07-18T05:03:58","subject":"Re: [PATCH v3 3/5] pipeline: rkisp1: Limit the maximum number of\n\tbuffers queued in","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On Thu, Jul 17, 2025 at 02:59:23PM +0200, Stefan Klug wrote:\n> To keep the regulation of the algorithms as fast as possible and at the\n> same time allow more buffers to be allocated, limit the amount of\n> buffers that get queued into the device to the pipeline depth plus a\n> tiny margin.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Tested-By: Sven Püschel<s.pueschel@pengutronix.de>\n> \n> ---\n> \n> Changes in v3:\n> - Collected tags\n> - Renamed kPipelineDepth to kRkISP1MaxQueuedRequests and made it static\n>   constexpr\n> - Added comment to kRkISP1MaxQueuedRequests\n> - Improved commit message\n> \n> Changes in v1:\n> - Replaced function overload with constructor param\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 14 +++++++++++++-\n>  1 file changed, 13 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 675f0a7490a6..7954ea82fd0d 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -155,6 +155,17 @@ private:\n>  \tTransform combinedTransform_;\n>  };\n>  \n> +namespace {\n> +\n> +/*\n> + * Maximum number of requests that shall be queued into the pipeline to keep\n> + * the regulation fast. \\todo This needs revisiting as soon as buffers got\n\nnit: \\todo on a new line.\n> + * decoupled from requests and/or a fast path for controls was implemented.\n> + */\n> +static constexpr unsigned int kRkISP1MaxQueuedRequests = 4;\n> +\n> +} // namespace\n\nnit: /* namespace */\n\nReviewed-by: Umang Jain <uajain@igalia.com>\n> +\n>  class PipelineHandlerRkISP1 : public PipelineHandler\n>  {\n>  public:\n> @@ -684,7 +695,8 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate()\n>   */\n>  \n>  PipelineHandlerRkISP1::PipelineHandlerRkISP1(CameraManager *manager)\n> -\t: PipelineHandler(manager), hasSelfPath_(true), useDewarper_(false)\n> +\t: PipelineHandler(manager, kRkISP1MaxQueuedRequests),\n> +\t  hasSelfPath_(true), useDewarper_(false)\n>  {\n>  }\n>  \n> -- \n> 2.48.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A881DBE175\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 18 Jul 2025 05:03:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9DC4B68F8C;\n\tFri, 18 Jul 2025 07:03:58 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0C58561508\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 18 Jul 2025 07:03:55 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1ucdGD-000Qot-AW; Fri, 18 Jul 2025 07:03:53 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"XyZwsqQE\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version\n\t:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=u7Bsm90rJdG3ag83KEoX8ZDnC4iwEQ6sk1teI/GNfEY=;\n\tb=XyZwsqQEFUNp3RxKf59iOT5Yoa\n\timwqt5mO2tYsoedJ9xK0HAtxJXIb0UdjvXe4PMD8x/fTB5EGY9j++yDnM4ELanKdH6TjVoXzhojQQ\n\t2rM8wQRNGxJBpZEimGTnyPmlG55Ao/pi0/jSmtI0FoAvc58JQoViD07iqc8bLNHDAtZu4PZv9UqMc\n\t/IYP4h+2Gc7zlyDZ0Qzu2wfDUQVztMXQN9P97HUQPma349pyydCfLhh3jurThqzFP/zwTPuGcNKuH\n\tqju4RtOwgkNBnL67bnSEN2khYYOL6GlBdqCL1h/nTVRMWUWQz/vpnGAscNKtEWJQJZIL0km1JPHi0\n\tuWvkxZzA==;","Date":"Fri, 18 Jul 2025 10:33:58 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, Sven =?utf-8?q?P=C3=BCschel?=\n\t<s.pueschel@pengutronix.de>","Subject":"Re: [PATCH v3 3/5] pipeline: rkisp1: Limit the maximum number of\n\tbuffers queued in","Message-ID":"<urwjzrmk67nhkauqu7752pqd4yeptx5z2vcqysfz4kffcoopuh@gfcax24hfser>","References":"<20250717125931.2848300-1-stefan.klug@ideasonboard.com>\n\t<20250717125931.2848300-4-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20250717125931.2848300-4-stefan.klug@ideasonboard.com>","User-Agent":"NeoMutt/20250510-dirty","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34928,"web_url":"https://patchwork.libcamera.org/comment/34928/","msgid":"<175283552739.3032907.9117048427702185145@localhost>","date":"2025-07-18T10:45:27","subject":"Re: [PATCH v3 3/5] pipeline: rkisp1: Limit the maximum number of\n\tbuffers queued in","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Umang,\n\nThank you for the review.\n\nQuoting Umang Jain (2025-07-18 07:03:58)\n> On Thu, Jul 17, 2025 at 02:59:23PM +0200, Stefan Klug wrote:\n> > To keep the regulation of the algorithms as fast as possible and at the\n> > same time allow more buffers to be allocated, limit the amount of\n> > buffers that get queued into the device to the pipeline depth plus a\n> > tiny margin.\n> > \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > Tested-By: Sven Püschel<s.pueschel@pengutronix.de>\n> > \n> > ---\n> > \n> > Changes in v3:\n> > - Collected tags\n> > - Renamed kPipelineDepth to kRkISP1MaxQueuedRequests and made it static\n> >   constexpr\n> > - Added comment to kRkISP1MaxQueuedRequests\n> > - Improved commit message\n> > \n> > Changes in v1:\n> > - Replaced function overload with constructor param\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 14 +++++++++++++-\n> >  1 file changed, 13 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > index 675f0a7490a6..7954ea82fd0d 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > @@ -155,6 +155,17 @@ private:\n> >       Transform combinedTransform_;\n> >  };\n> >  \n> > +namespace {\n> > +\n> > +/*\n> > + * Maximum number of requests that shall be queued into the pipeline to keep\n> > + * the regulation fast. \\todo This needs revisiting as soon as buffers got\n> \n> nit: \\todo on a new line.\n> > + * decoupled from requests and/or a fast path for controls was implemented.\n> > + */\n> > +static constexpr unsigned int kRkISP1MaxQueuedRequests = 4;\n> > +\n> > +} // namespace\n> \n> nit: /* namespace */\n\nGood point. That was auto added by checkstyle so I thought that must be\ncorrect. But it doesn't complain on /* */ style comments. \n\n> \n> Reviewed-by: Umang Jain <uajain@igalia.com>\n\nThanks,\nStefan\n\n> > +\n> >  class PipelineHandlerRkISP1 : public PipelineHandler\n> >  {\n> >  public:\n> > @@ -684,7 +695,8 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate()\n> >   */\n> >  \n> >  PipelineHandlerRkISP1::PipelineHandlerRkISP1(CameraManager *manager)\n> > -     : PipelineHandler(manager), hasSelfPath_(true), useDewarper_(false)\n> > +     : PipelineHandler(manager, kRkISP1MaxQueuedRequests),\n> > +       hasSelfPath_(true), useDewarper_(false)\n> >  {\n> >  }\n> >  \n> > -- \n> > 2.48.1\n> >","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 7CECBC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 18 Jul 2025 10:45:31 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 296EA68F9C;\n\tFri, 18 Jul 2025 12:45:31 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 20E786150F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 18 Jul 2025 12:45:30 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:79a1:9af4:635f:fecc])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 4BBBA59DF; \n\tFri, 18 Jul 2025 12:44:55 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WEhTz3W+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1752835495;\n\tbh=drZq5YGzMf+VkRBeWDewQt0M+IG6kOLpVDBYBBqtNJY=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=WEhTz3W+ddHtGWyF/70ln64MLJGYomhnkmMcesb8kZiOobW01I7P9GrgoqAhc1yfP\n\th70Tks434CyBgIYaB5RcfFS0yCZrjquY6qXthDatQDpDIUMg7zkwPn/Nuh5JnS6goX\n\tzW8lQ37cLrKKEe8mQgr6iQ47TP2Na7hPRmADfVGo=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<urwjzrmk67nhkauqu7752pqd4yeptx5z2vcqysfz4kffcoopuh@gfcax24hfser>","References":"<20250717125931.2848300-1-stefan.klug@ideasonboard.com>\n\t<20250717125931.2848300-4-stefan.klug@ideasonboard.com>\n\t<urwjzrmk67nhkauqu7752pqd4yeptx5z2vcqysfz4kffcoopuh@gfcax24hfser>","Subject":"Re: [PATCH v3 3/5] pipeline: rkisp1: Limit the maximum number of\n\tbuffers queued in","From":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, Sven =?utf-8?q?P=C3=BCschel?=\n\t<s.pueschel@pengutronix.de>","To":"Umang Jain <uajain@igalia.com>","Date":"Fri, 18 Jul 2025 12:45:27 +0200","Message-ID":"<175283552739.3032907.9117048427702185145@localhost>","User-Agent":"alot/0.12.dev8+g2c003385c862.d20250602","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]