Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/12049/?format=api
{ "id": 12049, "url": "https://patchwork.libcamera.org/api/1.1/covers/12049/?format=api", "web_url": "https://patchwork.libcamera.org/cover/12049/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210421165139.318432-1-nfraprado@collabora.com>", "date": "2021-04-21T16:51:35", "name": "[libcamera-devel,v3,0/4] lc-compliance: Add test to queue more requests than hardware depth", "submitter": { "id": 84, "url": "https://patchwork.libcamera.org/api/1.1/people/84/?format=api", "name": "Nícolas F. R. A. Prado", "email": "nfraprado@collabora.com" }, "mbox": "https://patchwork.libcamera.org/cover/12049/mbox/", "series": [ { "id": 1958, "url": "https://patchwork.libcamera.org/api/1.1/series/1958/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1958", "date": "2021-04-21T16:51:35", "name": "lc-compliance: Add test to queue more requests than hardware depth", "version": 3, "mbox": "https://patchwork.libcamera.org/series/1958/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/12049/comments/", "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 F12F0BDB15\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Apr 2021 16:52:22 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 60ED468840;\n\tWed, 21 Apr 2021 18:52:22 +0200 (CEST)", "from bhuna.collabora.co.uk (bhuna.collabora.co.uk\n\t[IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B42C068835\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Apr 2021 18:52:20 +0200 (CEST)", "from [127.0.0.1] (localhost [127.0.0.1])\n\t(Authenticated sender: nfraprado) with ESMTPSA id 87BF11F423E9" ], "From": "=?utf-8?b?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= <nfraprado@collabora.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Wed, 21 Apr 2021 13:51:35 -0300", "Message-Id": "<20210421165139.318432-1-nfraprado@collabora.com>", "X-Mailer": "git-send-email 2.31.1", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v3 0/4] lc-compliance: Add test to queue\n\tmore requests than hardware depth", "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": "=?utf-8?q?Andr=C3=A9_Almeida?= <andrealmeid@collabora.com>,\n\tkernel@collabora.com", "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>" }, "content": "The purpose of this series is to add a new test to lc-compliance that tests\nqueuing a lot of requests at once in order to ensure that pipeline handlers are\nable to handle more requests than they have resources for (like internal buffers\nand buffers in the videodev) [1].\n\nIn order to achieve this, the FrameBufferAllocator had to be adapted in order to\nallow an arbitrary amount of buffers to be allocated. But there's also the issue\nof reporting the minimum amount of requests required by the pipeline handler,\nwhich was solved by creating a new QueueDepth property.\n\nSo patch 1 adds the new QueueDepth property to report the minimum amount of\nrequests needed by the pipeline handler.\n\nPatch 2 adds a count argument to allocate() so that the amount of buffers to\nallocate needs to be specified, as it is no longer assumed through bufferCount.\n\nPatch 3 adds the test to lc-compliance.\n\nPatch 4 removes bufferCount from the StreamConfiguration as it is no longer\nneeded.\n\nThe amount of buffers to allocate in the lc-compliance test (patch 3) was\nhardcoded to 8 since more than that would cause errors when allocating.\n\nHirokazu,\nsince you have a patch series addressing this issue on the IPU3\npipeline [2], could you test this series? If both my and your patch series are\nworking, lc-compliance should crash before applying your series but run through\ncompletion after applying it.\n\nChanges in v3:\n- Added patches 1 and 4 to add the QueueDepth property and remove bufferCount\n- Made the count argument required in patch 2\n- Added previously missing changes to the gstreamer and v4l2 compatibility\n layers\n\nChanges in v2:\n- Renamed and reworded commits and series\n- Dropped patches 2 and 3, which were hacks to test, and added patch 1 to add\n count to FrameBufferAllocator\n- Thanks to Niklas:\n - Created new standalone test instead of looping over the other tests\n\n[1] https://bugs.libcamera.org/show_bug.cgi?id=24\n[2] https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019108.html\n\nv1: https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019139.html\nv2: https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019398.html\n\nNícolas F. R. A. Prado (4):\n libcamera: property: Add QueueDepth property\n libcamera: framebuffer_allocator: Make allocate() require count\n lc-compliance: Add test to queue more requests than hardware depth\n libcamera: stream: Remove bufferCount\n\n include/libcamera/camera.h | 2 +-\n include/libcamera/framebuffer_allocator.h | 2 +-\n include/libcamera/internal/pipeline_handler.h | 2 +-\n include/libcamera/stream.h | 2 -\n src/cam/capture.cpp | 10 +--\n src/gstreamer/gstlibcameraallocator.cpp | 4 +-\n src/lc-compliance/simple_capture.cpp | 83 ++++++++++++++++++-\n src/lc-compliance/simple_capture.h | 16 ++++\n src/lc-compliance/single_stream.cpp | 37 ++++++++-\n src/libcamera/camera.cpp | 4 +-\n src/libcamera/framebuffer_allocator.cpp | 5 +-\n src/libcamera/pipeline/ipu3/cio2.cpp | 1 -\n src/libcamera/pipeline/ipu3/ipu3.cpp | 23 ++---\n .../pipeline/raspberrypi/raspberrypi.cpp | 17 ++--\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 15 ++--\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 2 -\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 4 +-\n src/libcamera/pipeline/simple/converter.cpp | 7 +-\n src/libcamera/pipeline/simple/converter.h | 5 +-\n src/libcamera/pipeline/simple/simple.cpp | 19 ++---\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 14 ++--\n src/libcamera/pipeline/vimc/vimc.cpp | 15 ++--\n src/libcamera/pipeline_handler.cpp | 1 +\n src/libcamera/property_ids.yaml | 5 ++\n src/libcamera/stream.cpp | 9 +-\n src/qcam/main_window.cpp | 4 +-\n src/v4l2/v4l2_camera.cpp | 16 ++--\n src/v4l2/v4l2_camera.h | 5 +-\n src/v4l2/v4l2_camera_proxy.cpp | 8 +-\n test/camera/buffer_import.cpp | 10 ++-\n test/camera/capture.cpp | 4 +-\n test/camera/statemachine.cpp | 4 +-\n test/libtest/buffer_source.cpp | 4 +-\n test/libtest/buffer_source.h | 2 +-\n test/mapped-buffer.cpp | 4 +-\n test/v4l2_videodevice/buffer_cache.cpp | 4 +-\n 36 files changed, 246 insertions(+), 123 deletions(-)" }