[{"id":31821,"web_url":"https://patchwork.libcamera.org/comment/31821/","msgid":"<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>","date":"2024-10-19T22:45:11","subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Harvey Yang (2024-10-18 08:57:35)\n> Previously the worker might not receive the disconnect signal, and the\n> forked process might stay alive forever.\n> \n> This CL also helps DMA buf recycling, as the algo process might hold DMA\n> buf file descriptors.\n\nShould this just be part of the previous patch? Or is it somehow\ndistinct?\n\n> \n> Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> Co-developed-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> ---\n>  .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl     | 5 +++++\n>  1 file changed, 5 insertions(+)\n> \n> diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> index 1f990d3f9..68d68c4a5 100644\n> --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> @@ -60,6 +60,10 @@ public:\n>  \n>         ~{{proxy_worker_name}}() {}\n>  \n> +       void disconnected() {\n> +               exit_ = true;\n> +       }\n> +\n>         void readyRead()\n>         {\n>                 IPCUnixSocket::Payload _message;\n> @@ -131,6 +135,7 @@ public:\n>                         return EXIT_FAILURE;\n>                 }\n>                 socket_.readyRead.connect(this, &{{proxy_worker_name}}::readyRead);\n> +               socket_.disconnected.connect(this, &{{proxy_worker_name}}::disconnected);\n>  \n>                 ipa_ = dynamic_cast<{{interface_name}} *>(ipam->createInterface());\n>                 if (!ipa_) {\n> -- \n> 2.47.0.rc1.288.g06298d1525-goog\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 8AE12C3304\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 19 Oct 2024 22:45:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 388746538E;\n\tSun, 20 Oct 2024 00:45:16 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4267F65382\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 20 Oct 2024 00:45:14 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9521C502;\n\tSun, 20 Oct 2024 00:43:29 +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=\"kDq6aFaR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1729377809;\n\tbh=wk9f/K70paMmg+XZtuT8H9zQT17frriT/Q9Uv4oIlic=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=kDq6aFaRh/mCsmWuACoOTzdAz4YiHJQ13t7P/L94gmJ738IgwFblyC56dVBIG6y3R\n\tu0NrOW09arYjhRikZBtss5xYSV2kawgAhJKXQQWqKK0WRAHegQD8pnUtKLv7cR/Cd6\n\tJWLyk6+hQi8WFY82MN1dldnpolIxxtokuK7fZJTQ=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20241018075942.1150378-3-chenghaoyang@chromium.org>","References":"<20241018075942.1150378-1-chenghaoyang@chromium.org>\n\t<20241018075942.1150378-3-chenghaoyang@chromium.org>","Subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Harvey Yang <chenghaoyang@chromium.org>,\n\tYudhistira Erlandinata <yerlandinata@chromium.org>","To":"Harvey Yang <chenghaoyang@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sat, 19 Oct 2024 23:45:11 +0100","Message-ID":"<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":31824,"web_url":"https://patchwork.libcamera.org/comment/31824/","msgid":"<CAEB1ahunC2SW=pHb1wcmu1VTwKH1qssyaAmiROB=FVv0kroqUw@mail.gmail.com>","date":"2024-10-20T04:35:57","subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Hi Kieran,\n\nOn Sun, Oct 20, 2024 at 6:45 AM Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting Harvey Yang (2024-10-18 08:57:35)\n> > Previously the worker might not receive the disconnect signal, and the\n> > forked process might stay alive forever.\n> >\n> > This CL also helps DMA buf recycling, as the algo process might hold DMA\n> > buf file descriptors.\n>\n> Should this just be part of the previous patch? Or is it somehow\n> distinct?\n\nYes, I'm also fine with merging them. Will do in the next version.\n\nBR,\nHarvey\n\n>\n> >\n> > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> > Co-developed-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > ---\n> >  .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl     | 5 +++++\n> >  1 file changed, 5 insertions(+)\n> >\n> > diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > index 1f990d3f9..68d68c4a5 100644\n> > --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > @@ -60,6 +60,10 @@ public:\n> >\n> >         ~{{proxy_worker_name}}() {}\n> >\n> > +       void disconnected() {\n> > +               exit_ = true;\n> > +       }\n> > +\n> >         void readyRead()\n> >         {\n> >                 IPCUnixSocket::Payload _message;\n> > @@ -131,6 +135,7 @@ public:\n> >                         return EXIT_FAILURE;\n> >                 }\n> >                 socket_.readyRead.connect(this, &{{proxy_worker_name}}::readyRead);\n> > +               socket_.disconnected.connect(this, &{{proxy_worker_name}}::disconnected);\n> >\n> >                 ipa_ = dynamic_cast<{{interface_name}} *>(ipam->createInterface());\n> >                 if (!ipa_) {\n> > --\n> > 2.47.0.rc1.288.g06298d1525-goog\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 85B1AC3304\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 20 Oct 2024 04:36:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2F9F96538C;\n\tSun, 20 Oct 2024 06:36:11 +0200 (CEST)","from mail-lj1-x232.google.com (mail-lj1-x232.google.com\n\t[IPv6:2a00:1450:4864:20::232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F63B603ED\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 20 Oct 2024 06:36:09 +0200 (CEST)","by mail-lj1-x232.google.com with SMTP id\n\t38308e7fff4ca-2fb470a8b27so38826941fa.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 19 Oct 2024 21:36:09 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"flXk+Yzt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1729398968; x=1730003768;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=1ouv6DndxX7sUJVr25Gr4XbJ/V6bMqH2vbnF9a13CR8=;\n\tb=flXk+Yzt3ASyMkMDeDYz/W0xUd9wNoc0a0F02J2VyIXWyGCYkLN2Zk5rDlebGaKTZ0\n\tY1cCzQiRc8/APbft0ngkEd7Ek7L+Hb9pGoNjD3SkTyoYdbDJtFQYXIaBM60Uahzw/+vQ\n\tln4STswVqrRlpHGjPuPNNAIWzek0qA8mPf5/Y=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1729398968; x=1730003768;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=1ouv6DndxX7sUJVr25Gr4XbJ/V6bMqH2vbnF9a13CR8=;\n\tb=Em4zhIXf9bhisT+eaJRe5IZ/cxVeMJ21yBa3hRdcM1u7EZjRfLqe0WcM/2axCQjSDM\n\t3ouioC1NBnb8JDYFdftHSDPG8N+GjVI+/u3da6GrjyfsR+pZ4OhM4IAfBs8KxY8Z3JiT\n\tSbN5sYwynM4UTSuKVS2yogFVtg133L91u+nHpeRi263t+aRkAhM8WFSQ5vWeEaFhhLU3\n\tZsRv2cfszRknbgNYv6dt79HEMDnqcsRUf/R8GkUwc3+bIjapk8g5gDuBVRomIOSMJcYd\n\tGw5JfMJOusL+e8yxtJiCRNUUyHTIezWwFByBbBmThYEsWzrVryh9xgrEGcBvBXbN97NL\n\tVjaA==","X-Gm-Message-State":"AOJu0Ywa4dLh+cACFfNFxcaD+ubKoo8o5GnVqaJquTndI3QmWHxiCmFx\n\tSsDlSPmQ5PVGb/LlwYTad/lB+XcfgovCwcDyxmKJiTZmkDsiZRExdau0XmgewNrWl9C3O/YZzPP\n\tRGm4fQCMux++t9SyFQKbCsNBwkXE2TMFjMrVPHsSc7sRVL0osEg==","X-Google-Smtp-Source":"AGHT+IGc6aq2NpIM/CHUjQm/J7NTr1FQnNLod1lhIxJnP/BzxFjSFpnJO4asvFERNTqA/PL8vbm8dxUwt/9wNsIA600=","X-Received":"by 2002:a05:651c:1a0a:b0:2fb:3d1d:dd94 with SMTP id\n\t38308e7fff4ca-2fb82bb3c7bmr22528391fa.14.1729398968473;\n\tSat, 19 Oct 2024 21:36:08 -0700 (PDT)","MIME-Version":"1.0","References":"<20241018075942.1150378-1-chenghaoyang@chromium.org>\n\t<20241018075942.1150378-3-chenghaoyang@chromium.org>\n\t<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>","In-Reply-To":"<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Sun, 20 Oct 2024 12:35:57 +0800","Message-ID":"<CAEB1ahunC2SW=pHb1wcmu1VTwKH1qssyaAmiROB=FVv0kroqUw@mail.gmail.com>","Subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":31835,"web_url":"https://patchwork.libcamera.org/comment/31835/","msgid":"<20241020164854.GH7770@pendragon.ideasonboard.com>","date":"2024-10-20T16:48:54","subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Sun, Oct 20, 2024 at 12:35:57PM +0800, Cheng-Hao Yang wrote:\n> On Sun, Oct 20, 2024 at 6:45 AM Kieran Bingham wrote:\n> > Quoting Harvey Yang (2024-10-18 08:57:35)\n> > > Previously the worker might not receive the disconnect signal, and the\n> > > forked process might stay alive forever.\n> > >\n> > > This CL also helps DMA buf recycling, as the algo process might hold DMA\n> > > buf file descriptors.\n> >\n> > Should this just be part of the previous patch? Or is it somehow\n> > distinct?\n> \n> Yes, I'm also fine with merging them. Will do in the next version.\n\nPlease detail in the commit message both the expected behaviour on the\nlibcamera side and on the proxy worker side.\n\n> > > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> > > Co-developed-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > ---\n> > >  .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl     | 5 +++++\n> > >  1 file changed, 5 insertions(+)\n> > >\n> > > diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > index 1f990d3f9..68d68c4a5 100644\n> > > --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > @@ -60,6 +60,10 @@ public:\n> > >\n> > >         ~{{proxy_worker_name}}() {}\n> > >\n> > > +       void disconnected() {\n> > > +               exit_ = true;\n> > > +       }\n\n\tvoid disconnected()\n\t{\n\t\texit_ = true;\n\t}\n\n> > > +\n> > >         void readyRead()\n> > >         {\n> > >                 IPCUnixSocket::Payload _message;\n> > > @@ -131,6 +135,7 @@ public:\n> > >                         return EXIT_FAILURE;\n> > >                 }\n> > >                 socket_.readyRead.connect(this, &{{proxy_worker_name}}::readyRead);\n> > > +               socket_.disconnected.connect(this, &{{proxy_worker_name}}::disconnected);\n> > >\n> > >                 ipa_ = dynamic_cast<{{interface_name}} *>(ipam->createInterface());\n> > >                 if (!ipa_) {","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 6563EC3306\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 20 Oct 2024 16:49:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 293146538F;\n\tSun, 20 Oct 2024 18:49:02 +0200 (CEST)","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 A340A65379\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 20 Oct 2024 18:49:00 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 106B078E;\n\tSun, 20 Oct 2024 18:47:14 +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=\"Gs2HkVo8\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1729442835;\n\tbh=IDfEzPBvVVNVSbuA0UCg76XR703RUeGb8EKUiOQOTTw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Gs2HkVo8RI/oti80OTHKuNhksZ6kcaPMVoxVjukFrEvLbN5BEy5GvwBqT6u4VMbZs\n\tWn0DE7lIKTIA5k/VYbJraCvwp1ISxKqqLgiP3HEIuy0GN5cqmCJkR/fZBHmuN9u511\n\tlsLZAVEBmUIQhjrS11C5H/xnys2L2o8EyOkfv7UI=","Date":"Sun, 20 Oct 2024 19:48:54 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","Message-ID":"<20241020164854.GH7770@pendragon.ideasonboard.com>","References":"<20241018075942.1150378-1-chenghaoyang@chromium.org>\n\t<20241018075942.1150378-3-chenghaoyang@chromium.org>\n\t<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>\n\t<CAEB1ahunC2SW=pHb1wcmu1VTwKH1qssyaAmiROB=FVv0kroqUw@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<CAEB1ahunC2SW=pHb1wcmu1VTwKH1qssyaAmiROB=FVv0kroqUw@mail.gmail.com>","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":31885,"web_url":"https://patchwork.libcamera.org/comment/31885/","msgid":"<CAEB1ahsr3yWNCfG60oE5F=qPctS+huG4zbCmUC2rTQyq+F=N-Q@mail.gmail.com>","date":"2024-10-23T06:51:35","subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Hi Laurent,\n\nOn Mon, Oct 21, 2024 at 12:49 AM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Sun, Oct 20, 2024 at 12:35:57PM +0800, Cheng-Hao Yang wrote:\n> > On Sun, Oct 20, 2024 at 6:45 AM Kieran Bingham wrote:\n> > > Quoting Harvey Yang (2024-10-18 08:57:35)\n> > > > Previously the worker might not receive the disconnect signal, and the\n> > > > forked process might stay alive forever.\n> > > >\n> > > > This CL also helps DMA buf recycling, as the algo process might hold DMA\n> > > > buf file descriptors.\n> > >\n> > > Should this just be part of the previous patch? Or is it somehow\n> > > distinct?\n> >\n> > Yes, I'm also fine with merging them. Will do in the next version.\n>\n> Please detail in the commit message both the expected behaviour on the\n> libcamera side and on the proxy worker side.\n\nUpdated.\n\n>\n> > > > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> > > > Co-developed-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > > ---\n> > > >  .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl     | 5 +++++\n> > > >  1 file changed, 5 insertions(+)\n> > > >\n> > > > diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > > index 1f990d3f9..68d68c4a5 100644\n> > > > --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > > +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n> > > > @@ -60,6 +60,10 @@ public:\n> > > >\n> > > >         ~{{proxy_worker_name}}() {}\n> > > >\n> > > > +       void disconnected() {\n> > > > +               exit_ = true;\n> > > > +       }\n>\n>         void disconnected()\n>         {\n>                 exit_ = true;\n>         }\n>\n\nThanks, will be updated in the next version.\n\nBR,\nHarvey\n\n> > > > +\n> > > >         void readyRead()\n> > > >         {\n> > > >                 IPCUnixSocket::Payload _message;\n> > > > @@ -131,6 +135,7 @@ public:\n> > > >                         return EXIT_FAILURE;\n> > > >                 }\n> > > >                 socket_.readyRead.connect(this, &{{proxy_worker_name}}::readyRead);\n> > > > +               socket_.disconnected.connect(this, &{{proxy_worker_name}}::disconnected);\n> > > >\n> > > >                 ipa_ = dynamic_cast<{{interface_name}} *>(ipam->createInterface());\n> > > >                 if (!ipa_) {\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 5DF19BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Oct 2024 06:51:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4227265391;\n\tWed, 23 Oct 2024 08:51:49 +0200 (CEST)","from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com\n\t[IPv6:2a00:1450:4864:20::22e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 72E3E618C1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Oct 2024 08:51:47 +0200 (CEST)","by mail-lj1-x22e.google.com with SMTP id\n\t38308e7fff4ca-2fb5be4381dso65376461fa.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Oct 2024 23:51:47 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"f5Too5h9\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1729666306; x=1730271106;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=u0ujWkvshpMcOjYAPN4foRdGLAONm6aqsplbZu/EHq0=;\n\tb=f5Too5h92vW30pjrEIiHcgyI9UIrs3+o0Hx+LOPb23m+JKWSCyQsnPNoak0dDz8J6z\n\tMxXUpHiBe4jaTfIz0gPsR35rNoQFGQNBAtQRF0XwTVuKD50WbmDl+eV1G3GelFGXs+yk\n\tGcatsjZHdMEINg5GwaPeH67s2MhianA+b6DT4=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1729666306; x=1730271106;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=u0ujWkvshpMcOjYAPN4foRdGLAONm6aqsplbZu/EHq0=;\n\tb=GKTQHOCK1X910I/tfVQJPOtHKzHq7utW+Ag5VIuB8cg4jjlGi1UBjxi980xY70I3Id\n\tAzzPyuyLjtOSdseB/JjeQBOcdAQw+a2ftlEFhgH++Vfna9wMtTZtksjMKhW2Wo8GerfO\n\tBqYw1BxfTzQ5B1vVbF95EpgkLrKBlS7xwnOUqvF+OLUVYSnJHTRFNsKMryrvL/1n4lGd\n\tPvgCdm/gtIO/Ufk/N8SWdovnCoYVeOarOIjsXCvbBzgxM45jMdy7NI+shm3FzlXuOcnJ\n\tcgEs2+qCvABVY08otb+/i19KZZVqdTKkcrW/ib0vrx/eaxErRhZ2PSYEyoSS2zzU6NG/\n\tkHfw==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCWZff+IgDSpckiUbsgCXJZ7uYB/ToZz9s0fUvb8SnsXghbDr4rdZYweMvI/iF92gWc9qlLCIuAJkLNuqE4RlPM=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YwS8Kk1BkVKwPN4OfaqVRr8lZ75HUGarIj1cHNgXiNPM1Z0lS7a\n\txfBpR2f3SR0XTGmZ/GoaNFo/dCy7KgFO8aVxl8Be70ZxcUoin8ET+4669xtZR9jUwJnSwLklugm\n\tUtqEoMseZ3Hb4Cmi2mj8iOcedFA++Jou1CGTiKQW9ULmgayM=","X-Google-Smtp-Source":"AGHT+IGjuZNmemvUVc5G+ZXa/Qjrlb08lDoJFiYVtq+cSSe0p0fSZNIXp4kS68ZzC0PmSrTfNmvg7oS4brFK/nTEPGM=","X-Received":"by 2002:a2e:bea6:0:b0:2fb:4f2e:5be7 with SMTP id\n\t38308e7fff4ca-2fc9d322f9emr6001751fa.24.1729666306424;\n\tTue, 22 Oct 2024 23:51:46 -0700 (PDT)","MIME-Version":"1.0","References":"<20241018075942.1150378-1-chenghaoyang@chromium.org>\n\t<20241018075942.1150378-3-chenghaoyang@chromium.org>\n\t<172937791125.2485972.13668807662029274712@ping.linuxembedded.co.uk>\n\t<CAEB1ahunC2SW=pHb1wcmu1VTwKH1qssyaAmiROB=FVv0kroqUw@mail.gmail.com>\n\t<20241020164854.GH7770@pendragon.ideasonboard.com>","In-Reply-To":"<20241020164854.GH7770@pendragon.ideasonboard.com>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Wed, 23 Oct 2024 14:51:35 +0800","Message-ID":"<CAEB1ahsr3yWNCfG60oE5F=qPctS+huG4zbCmUC2rTQyq+F=N-Q@mail.gmail.com>","Subject":"Re: [PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>"}}]