Cover Letter Detail
Show a cover letter.
GET /api/covers/11108/?format=api
{ "id": 11108, "url": "https://patchwork.libcamera.org/api/covers/11108/?format=api", "web_url": "https://patchwork.libcamera.org/cover/11108/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20210202221051.1740237-1-niklas.soderlund@ragnatech.se>", "date": "2021-02-02T22:10:48", "name": "[libcamera-devel,v4,0/3] cam: Fix races in event loop and long request processing times", "submitter": { "id": 5, "url": "https://patchwork.libcamera.org/api/people/5/?format=api", "name": "Niklas Söderlund", "email": "niklas.soderlund@ragnatech.se" }, "mbox": "https://patchwork.libcamera.org/cover/11108/mbox/", "series": [ { "id": 1641, "url": "https://patchwork.libcamera.org/api/series/1641/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1641", "date": "2021-02-02T22:10:48", "name": "cam: Fix races in event loop and long request processing times", "version": 4, "mbox": "https://patchwork.libcamera.org/series/1641/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/11108/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 9AE77BD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 2 Feb 2021 22:11:21 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 355CC68432;\n\tTue, 2 Feb 2021 23:11:21 +0100 (CET)", "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 849F060307\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 2 Feb 2021 23:11:20 +0100 (CET)", "from bismarck.berto.se (p4fca2458.dip0.t-ipconnect.de\n\t[79.202.36.88])\n\tby bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 8be8f55e-65a3-11eb-b73f-0050569116f7;\n\tTue, 02 Feb 2021 23:11:14 +0100 (CET)" ], "X-Halon-ID": "8be8f55e-65a3-11eb-b73f-0050569116f7", "Authorized-sender": "niklas.soderlund@fsdn.se", "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 2 Feb 2021 23:10:48 +0100", "Message-Id": "<20210202221051.1740237-1-niklas.soderlund@ragnatech.se>", "X-Mailer": "git-send-email 2.30.0", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v4 0/3] cam: Fix races in event loop and\n\tlong request processing times", "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>", "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": "Hello,\n\nUsing cam to writing requests to (slow) media sometimes lock cam in an\nunbreakable loop. At the heart of the problem is that when request\nprocessing was moved from the camera to the main thread subtle races in\nthe cam event loop implementation where exposed.\n\nThe races are easily trigged by having callbacks injected into the even\nloop that takes a long time to process. The only callbacks cam currently\ninjects to the event loop are processing of completed requests. So by\nincreasing there processing time by writing them to disk the races where\ntrigged.\n\nThis series aims to solve this by integrating the cam event loop closer \nwith libevent. As a bonus cam can be made more strict about how it \noperates under the --capture=N mode.\n\nNiklas Söderlund (3):\n cam: event_loop: Rename event_ to base_\n cam: event_loop: Execute events in the libevent loop\n cam: Only queue the exact number of requests asked for\n\n src/cam/capture.cpp | 16 +++++++++++---\n src/cam/capture.h | 2 ++\n src/cam/event_loop.cpp | 49 ++++++++++++++++++++----------------------\n src/cam/event_loop.h | 8 ++-----\n 4 files changed, 40 insertions(+), 35 deletions(-)" }