[{"id":15045,"web_url":"https://patchwork.libcamera.org/comment/15045/","msgid":"<20210208101425.rdpfap7f6xhv6ycf@uno.localdomain>","date":"2021-02-08T10:14:25","subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Mon, Feb 08, 2021 at 10:44:16AM +0100, Niklas Söderlund wrote:\n> Running cam with the --capture=N option only queues N Requests to the\n> camera. If N is less then the number of requests needed by the camera to\n> operate cam may deadlock waiting for the camera to complete requests\n> while the camera waits for the application to give it more buffers.\n>\n> Fix this by adding a check in cam to no attempt a capture session if to\n> few requests are requested.\n>\n> Reported-by: Sebastian Fricke <sebastian.fricke@posteo.net>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/cam/capture.cpp | 7 +++++++\n>  1 file changed, 7 insertions(+)\n>\n> diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\n> index 7b55fc6770225e2a..18aa97c7cdb55dcc 100644\n> --- a/src/cam/capture.cpp\n> +++ b/src/cam/capture.cpp\n> @@ -90,6 +90,13 @@ int Capture::capture(FrameBufferAllocator *allocator)\n>  \t\tnbuffers = std::min(nbuffers, allocated);\n>  \t}\n>\n> +\tif (captureLimit_ && captureLimit_ < nbuffers) {\n> +\t\tstd::cerr << \"Camera requiers at least \" << nbuffers\n\ns/requiers/requires\n\n> +\t\t\t  << \" reqests to function, \" << captureLimit_\n\ns/reqests/requests\n\n> +\t\t\t  << \" requested\" << std::endl;\n\nI would make it shorter\n                        << \"Camera requires \" << nbuffers << \" requests, \"\n                        << \"but only \" << captureLimit_ << \" have been provided\";\n\nWhich is not that shorter :/\n\nUp to you\n\nSpelling fixes apart\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n> +\t\treturn -EINVAL;\n> +\t}\n> +\n>  \t/*\n>  \t * TODO: make cam tool smarter to support still capture by for\n>  \t * example pushing a button. For now run all streams all the time.\n> --\n> 2.30.0\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 5047DBD162\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Feb 2021 10:14:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 997EB60D18;\n\tMon,  8 Feb 2021 11:14:04 +0100 (CET)","from relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9FDBB60D10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Feb 2021 11:14:02 +0100 (CET)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 24CBF24000A;\n\tMon,  8 Feb 2021 10:14:01 +0000 (UTC)"],"Date":"Mon, 8 Feb 2021 11:14:25 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20210208101425.rdpfap7f6xhv6ycf@uno.localdomain>","References":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15046,"web_url":"https://patchwork.libcamera.org/comment/15046/","msgid":"<c9807194-bea9-8c6e-ea0d-fef42fa0d07f@ideasonboard.com>","date":"2021-02-08T10:20:07","subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Niklas,\n\nAlso s/to/too/ in $SUBJECT\n\nOn 08/02/2021 10:14, Jacopo Mondi wrote:\n> Hi Niklas,\n> \n> On Mon, Feb 08, 2021 at 10:44:16AM +0100, Niklas Söderlund wrote:\n>> Running cam with the --capture=N option only queues N Requests to the\n>> camera. If N is less then the number of requests needed by the camera to\n>> operate cam may deadlock waiting for the camera to complete requests\n>> while the camera waits for the application to give it more buffers.\n>>\n>> Fix this by adding a check in cam to no attempt a capture session if to\n>> few requests are requested.\n\nand here s/to/too/\n\n>>\n>> Reported-by: Sebastian Fricke <sebastian.fricke@posteo.net>\n>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>> ---\n>>  src/cam/capture.cpp | 7 +++++++\n>>  1 file changed, 7 insertions(+)\n>>\n>> diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\n>> index 7b55fc6770225e2a..18aa97c7cdb55dcc 100644\n>> --- a/src/cam/capture.cpp\n>> +++ b/src/cam/capture.cpp\n>> @@ -90,6 +90,13 @@ int Capture::capture(FrameBufferAllocator *allocator)\n>>  \t\tnbuffers = std::min(nbuffers, allocated);\n>>  \t}\n>>\n>> +\tif (captureLimit_ && captureLimit_ < nbuffers) {\n>> +\t\tstd::cerr << \"Camera requiers at least \" << nbuffers\n> \n> s/requiers/requires\n> \n>> +\t\t\t  << \" reqests to function, \" << captureLimit_\n> \n> s/reqests/requests\n> \n>> +\t\t\t  << \" requested\" << std::endl;\n> \n> I would make it shorter\n>                         << \"Camera requires \" << nbuffers << \" requests, \"\n>                         << \"but only \" << captureLimit_ << \" have been provided\";\n> \n> Which is not that shorter :/\n> \n> Up to you\n> \n> Spelling fixes apart\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nShould we increase the capture lmit to the minimum? Or do you want to\nmake sure cam fails if too few are requested?\n\nEither way,\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> \n> Thanks\n>   j\n> \n>> +\t\treturn -EINVAL;\n>> +\t}\n>> +\n>>  \t/*\n>>  \t * TODO: make cam tool smarter to support still capture by for\n>>  \t * example pushing a button. For now run all streams all the time.\n>> --\n>> 2.30.0\n>>\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\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 5690DBD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Feb 2021 10:20:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D686060D16;\n\tMon,  8 Feb 2021 11:20:11 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 67B6860D10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Feb 2021 11:20:10 +0100 (CET)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DC1C93D7;\n\tMon,  8 Feb 2021 11:20:09 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"O6yWnFBI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1612779610;\n\tbh=S0Is6g/nY4nLVin2n3zq4XLI/oRcVY+hExsc0MxbSMI=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=O6yWnFBI9Ctw+u8iEyHj3z8GCTpZ53eY/Din9VbAmLRrXVWE8atWIa9ynVtY7MVRC\n\tpINzhNh4PBCMfUcoLoQFqLA7HimmNKeSsdlglWTQTW/4ijhTcOzwX7nWX2YQK7mCQx\n\tmVH6pP5l4oE3JeitWRxUMPWJtkom2N+LBcHRsXUI=","To":"Jacopo Mondi <jacopo@jmondi.org>, =?utf-8?q?Niklas_S=C3=B6derlund?=\n\t<niklas.soderlund@ragnatech.se>","References":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>\n\t<20210208101425.rdpfap7f6xhv6ycf@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<c9807194-bea9-8c6e-ea0d-fef42fa0d07f@ideasonboard.com>","Date":"Mon, 8 Feb 2021 10:20:07 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20210208101425.rdpfap7f6xhv6ycf@uno.localdomain>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15047,"web_url":"https://patchwork.libcamera.org/comment/15047/","msgid":"<YCERlm8orgeBXP7W@oden.dyn.berto.se>","date":"2021-02-08T10:25:26","subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Kieran and Jacopo,\n\nThanks for your feedback.\n\nOn 2021-02-08 10:20:07 +0000, Kieran Bingham wrote:\n> Hi Niklas,\n> \n> Also s/to/too/ in $SUBJECT\n> \n> On 08/02/2021 10:14, Jacopo Mondi wrote:\n> > Hi Niklas,\n> > \n> > On Mon, Feb 08, 2021 at 10:44:16AM +0100, Niklas Söderlund wrote:\n> >> Running cam with the --capture=N option only queues N Requests to the\n> >> camera. If N is less then the number of requests needed by the camera to\n> >> operate cam may deadlock waiting for the camera to complete requests\n> >> while the camera waits for the application to give it more buffers.\n> >>\n> >> Fix this by adding a check in cam to no attempt a capture session if to\n> >> few requests are requested.\n> \n> and here s/to/too/\n> \n> >>\n> >> Reported-by: Sebastian Fricke <sebastian.fricke@posteo.net>\n> >> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> >> ---\n> >>  src/cam/capture.cpp | 7 +++++++\n> >>  1 file changed, 7 insertions(+)\n> >>\n> >> diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\n> >> index 7b55fc6770225e2a..18aa97c7cdb55dcc 100644\n> >> --- a/src/cam/capture.cpp\n> >> +++ b/src/cam/capture.cpp\n> >> @@ -90,6 +90,13 @@ int Capture::capture(FrameBufferAllocator *allocator)\n> >>  \t\tnbuffers = std::min(nbuffers, allocated);\n> >>  \t}\n> >>\n> >> +\tif (captureLimit_ && captureLimit_ < nbuffers) {\n> >> +\t\tstd::cerr << \"Camera requiers at least \" << nbuffers\n> > \n> > s/requiers/requires\n> > \n> >> +\t\t\t  << \" reqests to function, \" << captureLimit_\n> > \n> > s/reqests/requests\n> > \n> >> +\t\t\t  << \" requested\" << std::endl;\n> > \n> > I would make it shorter\n> >                         << \"Camera requires \" << nbuffers << \" requests, \"\n> >                         << \"but only \" << captureLimit_ << \" have been provided\";\n> > \n> > Which is not that shorter :/\n> > \n> > Up to you\n> > \n> > Spelling fixes apart\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> Should we increase the capture lmit to the minimum? Or do you want to\n> make sure cam fails if too few are requested?\n\nI would prefers to fail as one could do\n\n    $ cam --camera foo --capture=2 --file=frame-#.bin\n\nAnd expect 2 files to be written to disk. If we auto increment it to the \nminimum 2 or more files may be written to disk which might not be what \nthe user wants.\n\n> \n> Either way,\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> \n> > \n> > Thanks\n> >   j\n> > \n> >> +\t\treturn -EINVAL;\n> >> +\t}\n> >> +\n> >>  \t/*\n> >>  \t * TODO: make cam tool smarter to support still capture by for\n> >>  \t * example pushing a button. For now run all streams all the time.\n> >> --\n> >> 2.30.0\n> >>\n> >> _______________________________________________\n> >> libcamera-devel mailing list\n> >> libcamera-devel@lists.libcamera.org\n> >> https://lists.libcamera.org/listinfo/libcamera-devel\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n> > \n> \n> -- \n> Regards\n> --\n> Kieran","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 CBC1CBD162\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Feb 2021 10:25:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5B8C260D1A;\n\tMon,  8 Feb 2021 11:25:30 +0100 (CET)","from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com\n\t[IPv6:2a00:1450:4864:20::12e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9177160D16\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Feb 2021 11:25:28 +0100 (CET)","by mail-lf1-x12e.google.com with SMTP id m22so21409276lfg.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 08 Feb 2021 02:25:28 -0800 (PST)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\ta11sm1993953lfi.197.2021.02.08.02.25.26\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 08 Feb 2021 02:25:27 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"zyPrrfKq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=y6oCmIY7hupf/fjeJQMn3runxwdWOhFwA7vajL2aidU=;\n\tb=zyPrrfKqt0P4YtCZt/3HDzZXMOicWhJ9TdKSnF2i7FRmqX1wARpk5YN3RNcFZuw/j8\n\tAiLGzMsnx9m8qI6fQCfP9QsyE+ct06uO4DKHg0dZM+7hlLkzU0ptt1zl6F9OvbO7C1Nh\n\tHG645cdCBYADoCotsOV08aaLOMxd8W0MkAAZdjSSh3RuZTRyXw1XXtgYeU2CtXt4PwJg\n\tCOfALxh0uc3hZB4YM20iP1+WtKn5Vfut57lt5lI14g6ec+tDwSaEGBl7tc6lVm2fXomj\n\tR17qP567m1uSlPBoWYrB2wqtJwjpH/4Ykc/FNuAFGBVzX9hY/7Ztv0qpUkNYWm46Bkkw\n\tdE4A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=y6oCmIY7hupf/fjeJQMn3runxwdWOhFwA7vajL2aidU=;\n\tb=cxWSDN8NXT7P995bZZwv8doWTXMzECMNKEF358J9vYuzR7G1zH07nljfaliD1dcQLB\n\tOpA/VxV3yG0TA3ni6/iyHV6elCXrXNP/XjG20naTZRpRvwWDqnVRcYKfhVGbBshRIRma\n\tTULcLHyrh+gHhjuELbRj71dSR2/0x70WnvMNvMJW3G7ylHXdDnxNLVEuIb6EnpEqBNxi\n\tOlZzijyZRH/PmvOFIEruarbijaLRWWRR28THca93O83pqP6On6b2BvEnC9XeCi/C3fZR\n\teruDo8KKgoKGiB8M7uaG1VjhYDu+n0XYVhVVWnT8ro+WSvWX289mOG4IlUgaygRuOOhI\n\tt45g==","X-Gm-Message-State":"AOAM530ceKrtnptDN+zUZRV1/BVf3N17VBJIHxE2rzwc0N6leCGK20B7\n\tRSNlmHXT2LVlqtRRfrjRVllAxw==","X-Google-Smtp-Source":"ABdhPJwnkxd9aSYRmF9toNcTkNKF14C8w7+ciU7LI/pL3kBgXrDrjIMgmYF4cGKo14AvS/UPV/wySg==","X-Received":"by 2002:a19:5d1:: with SMTP id 200mr9516079lff.315.1612779927800;\n\tMon, 08 Feb 2021 02:25:27 -0800 (PST)","Date":"Mon, 8 Feb 2021 11:25:26 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YCERlm8orgeBXP7W@oden.dyn.berto.se>","References":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>\n\t<20210208101425.rdpfap7f6xhv6ycf@uno.localdomain>\n\t<c9807194-bea9-8c6e-ea0d-fef42fa0d07f@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<c9807194-bea9-8c6e-ea0d-fef42fa0d07f@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15048,"web_url":"https://patchwork.libcamera.org/comment/15048/","msgid":"<YCEiR6+Z5Hvyp6Ah@pendragon.ideasonboard.com>","date":"2021-02-08T11:36:39","subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Mon, Feb 08, 2021 at 10:44:16AM +0100, Niklas Söderlund wrote:\n> Running cam with the --capture=N option only queues N Requests to the\n> camera. If N is less then the number of requests needed by the camera to\n> operate cam may deadlock waiting for the camera to complete requests\n> while the camera waits for the application to give it more buffers.\n> \n> Fix this by adding a check in cam to no attempt a capture session if to\n> few requests are requested.\n> \n> Reported-by: Sebastian Fricke <sebastian.fricke@posteo.net>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/cam/capture.cpp | 7 +++++++\n>  1 file changed, 7 insertions(+)\n> \n> diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\n> index 7b55fc6770225e2a..18aa97c7cdb55dcc 100644\n> --- a/src/cam/capture.cpp\n> +++ b/src/cam/capture.cpp\n> @@ -90,6 +90,13 @@ int Capture::capture(FrameBufferAllocator *allocator)\n>  \t\tnbuffers = std::min(nbuffers, allocated);\n>  \t}\n>  \n> +\tif (captureLimit_ && captureLimit_ < nbuffers) {\n> +\t\tstd::cerr << \"Camera requiers at least \" << nbuffers\n> +\t\t\t  << \" reqests to function, \" << captureLimit_\n> +\t\t\t  << \" requested\" << std::endl;\n> +\t\treturn -EINVAL;\n> +\t}\n\nI'm afraid this isn't right. The pipeline handler may not require\nnbuffers to be queued to operate properly, and this also won't handle\nthe end of stream case where some drivers will require enqueing more\nbuffers to push the last buffers out.\n\nWe need a more complex solution for this, involving an explicit queue\ndepth.\n\n> +\n>  \t/*\n>  \t * TODO: make cam tool smarter to support still capture by for\n>  \t * example pushing a button. For now run all streams all the time.","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 B908ABD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Feb 2021 11:37:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 267F260D1E;\n\tMon,  8 Feb 2021 12:37:05 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1F91C60D18\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Feb 2021 12:37:04 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8BA8C9FF;\n\tMon,  8 Feb 2021 12:37:03 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MdHZGg+4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1612784223;\n\tbh=r0x8eFMnozB6/uTwRlvxHtaLjrQC8saMh5fR5w59iJM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=MdHZGg+4FRHIUf2/HUmZFSBsmtoOsA0HL1xj7mnk7tTyhU1U0UrDphAKuRBYw3IOQ\n\tiw7W4pp1nCXmv5ZyIips6YFUDNxXLokAyFJfBnb65WMrIAw7FEtx7MJ+eJsxUyF46D\n\tQP66JiyFDze//8RR/+lXaQB+i1MnUFgRCFuL7qnw=","Date":"Mon, 8 Feb 2021 13:36:39 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<YCEiR6+Z5Hvyp6Ah@pendragon.ideasonboard.com>","References":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15063,"web_url":"https://patchwork.libcamera.org/comment/15063/","msgid":"<YCGPyqivmO/VvAGj@oden.dyn.berto.se>","date":"2021-02-08T19:23:54","subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your feedback.\n\nOn 2021-02-08 13:36:39 +0200, Laurent Pinchart wrote:\n> Hi Niklas,\n> \n> Thank you for the patch.\n> \n> On Mon, Feb 08, 2021 at 10:44:16AM +0100, Niklas Söderlund wrote:\n> > Running cam with the --capture=N option only queues N Requests to the\n> > camera. If N is less then the number of requests needed by the camera to\n> > operate cam may deadlock waiting for the camera to complete requests\n> > while the camera waits for the application to give it more buffers.\n> > \n> > Fix this by adding a check in cam to no attempt a capture session if to\n> > few requests are requested.\n> > \n> > Reported-by: Sebastian Fricke <sebastian.fricke@posteo.net>\n> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  src/cam/capture.cpp | 7 +++++++\n> >  1 file changed, 7 insertions(+)\n> > \n> > diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\n> > index 7b55fc6770225e2a..18aa97c7cdb55dcc 100644\n> > --- a/src/cam/capture.cpp\n> > +++ b/src/cam/capture.cpp\n> > @@ -90,6 +90,13 @@ int Capture::capture(FrameBufferAllocator *allocator)\n> >  \t\tnbuffers = std::min(nbuffers, allocated);\n> >  \t}\n> >  \n> > +\tif (captureLimit_ && captureLimit_ < nbuffers) {\n> > +\t\tstd::cerr << \"Camera requiers at least \" << nbuffers\n> > +\t\t\t  << \" reqests to function, \" << captureLimit_\n> > +\t\t\t  << \" requested\" << std::endl;\n> > +\t\treturn -EINVAL;\n> > +\t}\n> \n> I'm afraid this isn't right. The pipeline handler may not require\n> nbuffers to be queued to operate properly, and this also won't handle\n> the end of stream case where some drivers will require enqueing more\n> buffers to push the last buffers out.\n\nFirst off, I agree we should move towards not requiring more then 1 \nRequest queued for a camera to operate popery. But that is the design we \nhave today and why we added nbuffers. I think it make sens to express \nthis in cam until we rework our pipelines to not need nbuffers and \ninstead add scratch buffers or something else.\n\nFurther more I don't think we should handle scenarios where we need to \nqueue more buffers at stream stop. Is this not something v4l2-compliance \nchecks for? And if we have a pipeline where this does not work we should \nfix it in the kernel. But for start conditions there is code in vb2 that \ndeals with N buffers needs to be queued for capture to start so we need \nto handle that somehow in libcamera. Right now this is pushed to \napplications and until we rework this I think cam should act on the \ninformation it have instead of dead locking.\n\n> \n> We need a more complex solution for this, involving an explicit queue\n> depth.\n\nIs this not more needed for operational guarantees of 3A algorithms \nunless we are going to have a larger memory footprint by using internal \nbuffers to keep the algorithms running?\n\n> \n> > +\n> >  \t/*\n> >  \t * TODO: make cam tool smarter to support still capture by for\n> >  \t * example pushing a button. For now run all streams all the time.\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","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 428A4BD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Feb 2021 19:23:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BBAFD60D31;\n\tMon,  8 Feb 2021 20:23:58 +0100 (CET)","from mail-lf1-x132.google.com (mail-lf1-x132.google.com\n\t[IPv6:2a00:1450:4864:20::132])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 61B7060D21\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Feb 2021 20:23:57 +0100 (CET)","by mail-lf1-x132.google.com with SMTP id v24so24120191lfr.7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 08 Feb 2021 11:23:57 -0800 (PST)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tw13sm2195757lfu.299.2021.02.08.11.23.55\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 08 Feb 2021 11:23:55 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"1K4iF42j\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=No5jkxSxWDGLi9xNxGKob0eXPRSIgfdOcOB6MQsKF+k=;\n\tb=1K4iF42jhD0pWJBOOieMmE0mo0UaylatxxGJzmbhv3BhyJGxIpCokekHmxwIFaoqxh\n\t2x2edswQz0hTSDGqyco41fvqLL4O+HOlcpQi8IcTU9XULttNsWewYVXS+6dscArvBXlQ\n\tBo6wP6huHiphZNFpGObXFN+FzdygzenkKsrMGC1apdMczl/wveQX9Pxk1MFtq6uP7buu\n\t4gmBoStvkk5ngSQcvfO94LbHtZDaOBeQKfEkEgOM/nVfXzL/x2DlftWEKpzFybjEed5D\n\tfDz6oVIJVHUUaDUmEWA4bhfzDfffjm50e8U0gcFiFdIut4ubUd+YmSkRw5hS7keq4ZYR\n\tB1ig==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=No5jkxSxWDGLi9xNxGKob0eXPRSIgfdOcOB6MQsKF+k=;\n\tb=ukvHc//KgTBmJg3P4Fd1Bg55gCfVtwGYkzcnchqGJFWVTpMirc9uTyw4Gmip77wEX3\n\tNQsvBHnM3cKSAqu165gaeoABGiAPy2R4uMsMU135SthrApoLElxtaskoQrAdMa3IlfXt\n\t9E4PFMnd4d/6nDluShf668ywwoOnCYo5NnPPV1eqQJTM0OaXEgvOLyce1p+r90xmj2dZ\n\tq7NRDJZS/tmHjHXcA+QLkyi67Mr8FgyOxhkdop6NCvH/s6+oEqsqz12rRljejJtsHm3n\n\tsm18S262rb1i5V6cAgfOe0jo+jU9cojjG7I2DL5bY7R+yOLzDgotyTwCDVwnnR9hfIoW\n\tvwKg==","X-Gm-Message-State":"AOAM531kvsyd54KZcVgv0hFadQtvsHzVTsco7a0uXIZORIcrxup8J5GW\n\tH7SqlhxwAaeolxMkm8ruzy3MWq5Bsd0WEw==","X-Google-Smtp-Source":"ABdhPJzUyciCgoNKYi1gjXtVR3zjUhWGmqAsWhby8W+VtKSf5ZrwYUk1oVe4vmuIUaZnxGaANmJvIA==","X-Received":"by 2002:ac2:523c:: with SMTP id\n\ti28mr8107877lfl.274.1612812236312; \n\tMon, 08 Feb 2021 11:23:56 -0800 (PST)","Date":"Mon, 8 Feb 2021 20:23:54 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<YCGPyqivmO/VvAGj@oden.dyn.berto.se>","References":"<20210208094416.2124569-1-niklas.soderlund@ragnatech.se>\n\t<YCEiR6+Z5Hvyp6Ah@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<YCEiR6+Z5Hvyp6Ah@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] cam: Fail capture if to few Requests\n\tasked for","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]