{"id":12870,"url":"https://patchwork.libcamera.org/api/patches/12870/?format=json","web_url":"https://patchwork.libcamera.org/patch/12870/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20210708105405.147172-3-umang.jain@ideasonboard.com>","date":"2021-07-08T10:54:05","name":"[libcamera-devel,v2,2/2] utils: ipc: proxy: Reset ControlSerializer during IPA configure","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"15ca808280267dfc624ccbd1adbc5b79eebaedba","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/?format=json","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"delegate":{"id":12,"url":"https://patchwork.libcamera.org/api/users/12/?format=json","username":"uajain","first_name":"Umang","last_name":"Jain","email":"umang.jain@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/patch/12870/mbox/","series":[{"id":2218,"url":"https://patchwork.libcamera.org/api/series/2218/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2218","date":"2021-07-08T10:54:03","name":"utils: ipc: proxy: Always reset ControlSerializer during IPA configure","version":2,"mbox":"https://patchwork.libcamera.org/series/2218/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/12870/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/12870/checks/","tags":{},"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 336D6BD794\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Jul 2021 10:54:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DD07468513;\n\tThu,  8 Jul 2021 12:54:21 +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 C40A768506\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Jul 2021 12:54:20 +0200 (CEST)","from perceval.ideasonboard.com (unknown [103.251.226.59])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8C057E7;\n\tThu,  8 Jul 2021 12:54:19 +0200 (CEST)"],"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=\"qVulVQLa\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1625741660;\n\tbh=CGeM7/+uBDXxD8q/Zpe+G7EZ0S4eHT2scLwNdgVm5Bo=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=qVulVQLacVDOkKFXzLVKNFBA4XgywjAVcS5UHOF86Dw2qI77L5Tnjt3+ODLirYZ8K\n\tahbI28I7SoD5LsyvMBFpiWBNHCQ+2ew9jeGwkpia5dNEcEMRQLINNf7zfadXmiTQYi\n\tAFdoszQes+aHMeAKoTO31OP18+DVI8Su5sKkl4cw=","From":"Umang Jain <umang.jain@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu,  8 Jul 2021 16:24:05 +0530","Message-Id":"<20210708105405.147172-3-umang.jain@ideasonboard.com>","X-Mailer":"git-send-email 2.31.1","In-Reply-To":"<20210708105405.147172-1-umang.jain@ideasonboard.com>","References":"<20210708105405.147172-1-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 2/2] utils: ipc: proxy: Reset\n\tControlSerializer during IPA configure","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>"},"content":"ControlSerializer should be reset during IPA (re)configuration,\nso that it doesn't look up stale deserialized cache built from\nconsecutive previous runs. This is already recommended in\nControlSerializer docs but the implementation seems missing.\n\nThe stale cache lookup seems to the core issue with Bug #58.\n\nBug: https://bugs.libcamera.org/show_bug.cgi?id=58\nSigned-off-by: Umang Jain <umang.jain@ideasonboard.com>\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n---\n .../generators/libcamera_templates/module_ipa_proxy.cpp.tmpl   | 3 +++\n 1 file changed, 3 insertions(+)","diff":"diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\nindex 5a64fe9c..a4e008c7 100644\n--- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n+++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n@@ -184,6 +184,9 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data)\n \n {{proxy_funcs.func_sig(proxy_name, method, \"IPC\")}}\n {\n+{%- if method.mojom_name == \"configure\" %}\n+\tcontrolSerializer_.reset();\n+{%- endif %}\n {%- set has_output = true if method|method_param_outputs|length > 0 or method|method_return_value != \"void\" %}\n {%- set cmd = cmd_enum_name + \"::\" + method.mojom_name|cap %}\n \tIPCMessage::Header _header = { static_cast<uint32_t>({{cmd}}), seq_++ };\n","prefixes":["libcamera-devel","v2","2/2"]}