From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3AC2C7EE25 for ; Thu, 8 Jun 2023 10:25:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232125AbjFHKZF (ORCPT ); Thu, 8 Jun 2023 06:25:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236209AbjFHKZE (ORCPT ); Thu, 8 Jun 2023 06:25:04 -0400 Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com [IPv6:2607:f8b0:4864:20::72e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 761FF173B for ; Thu, 8 Jun 2023 03:25:02 -0700 (PDT) Received: by mail-qk1-x72e.google.com with SMTP id af79cd13be357-75d57fdb014so36847285a.0 for ; Thu, 08 Jun 2023 03:25:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=MTA84B0sr5UDGyDh5iVn5msSmAbrDm74UHfyejmOT+JGvEDf6wd4Is4XJesA/gh+/a XJqwzSWwyaifR7HuhXwN9A6CpAiG0Wbfa0lHg6Cz8rRrfoNOoxbQgveuYuIZwi65dPYk dVpMzwlSqrICOxm2BPty+v/UdVd/kKV9aTz+8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=HBmCf54ccN5MrUPqAyPGFEIzeNoBjGN0WOSTdwJX8j2f2qbtoElPtr0ZJrnOngRzz/ 0NZgS5Ngci1aHSMuLy5cU04x6Ou6ulUaMxJJn8sD5P4ZNwKKMaAZv2HmGr4LT8I9d5AA ci98s0mVjBmWki2+wrrhJdSwTZOx60vUuio30YYQod3sIYQDPQcLk1MSFq85G8Ttlsbh TXO8zRD7smwwSATlgky7OutZzbA8DtbFW+NicCHWYJComkkYcLYGSb/g8hDTpqrO7WlN UFBKbYSBHKsTu/noxda/0rSgqIRnrOwPybzNVDO89OVkSLrj2yR2cwWK3HyxcKuwWQM5 8kBw== X-Gm-Message-State: AC+VfDx7z4cgwGVDU11faryd1ozAaIcWpNyfIqyH8F6UsYcnKgZcS+yM 8VcZQ8v0boy+qr6Wm3uZeoJeTQ9z+04h+6cs2klhDQ== X-Google-Smtp-Source: ACHHUZ7WAX3FVVtyQo8sQvalCkyD5aDTx7YmgEqB1TLPzT0nhZRpn4t6w6J/MPN9YYNJHc+tsK00gA== X-Received: by 2002:a05:620a:28d3:b0:75d:536e:2188 with SMTP id l19-20020a05620a28d300b0075d536e2188mr6406821qkp.59.1686219901464; Thu, 08 Jun 2023 03:25:01 -0700 (PDT) Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com. [209.85.222.174]) by smtp.gmail.com with ESMTPSA id m22-20020a05620a13b600b00759554bbe48sm242740qki.4.2023.06.08.03.25.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 03:25:01 -0700 (PDT) Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-75e4497597cso35849485a.2 for ; Thu, 08 Jun 2023 03:25:01 -0700 (PDT) X-Received: by 2002:ad4:5f0e:0:b0:623:690c:3cd7 with SMTP id fo14-20020ad45f0e000000b00623690c3cd7mr1200397qvb.47.1686219880090; Thu, 08 Jun 2023 03:24:40 -0700 (PDT) MIME-Version: 1.0 References: <20230321102855.346732-1-benjamin.gaignard@collabora.com> <20230321102855.346732-4-benjamin.gaignard@collabora.com> <6c4658fd-3a64-b3f8-67cd-17ed2d7d3567@xs4all.nl> <20230531080331.GB6496@pendragon.ideasonboard.com> <608ae7d6-3f3b-137d-08d2-d41a240be2c4@xs4all.nl> <20230531123945.GF27043@pendragon.ideasonboard.com> In-Reply-To: <20230531123945.GF27043@pendragon.ideasonboard.com> From: Tomasz Figa Date: Thu, 8 Jun 2023 19:24:29 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage To: Laurent Pinchart Cc: Hans Verkuil , Benjamin Gaignard , m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Wed, May 31, 2023 at 9:39=E2=80=AFPM Laurent Pinchart wrote: > > On Wed, May 31, 2023 at 10:30:36AM +0200, Hans Verkuil wrote: > > On 5/31/23 10:03, Laurent Pinchart wrote: > > > On Wed, May 31, 2023 at 08:36:59AM +0200, Hans Verkuil wrote: > > >> On 21/03/2023 11:28, Benjamin Gaignard wrote: > > >>> Add module parameter "max_vb_buffer_per_queue" to be able to limit > > >>> the number of vb2 buffers store in queue. > > >>> > > >>> Signed-off-by: Benjamin Gaignard > > >>> --- > > >>> drivers/media/common/videobuf2/videobuf2-core.c | 15 +++----------= -- > > >>> include/media/videobuf2-core.h | 11 +++++++++-- > > >>> 2 files changed, 12 insertions(+), 14 deletions(-) > > >>> > > >>> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/driv= ers/media/common/videobuf2/videobuf2-core.c > > >>> index ae9d72f4d181..f4da917ccf3f 100644 > > >>> --- a/drivers/media/common/videobuf2/videobuf2-core.c > > >>> +++ b/drivers/media/common/videobuf2/videobuf2-core.c > > >>> @@ -34,6 +34,8 @@ > > >>> static int debug; > > >>> module_param(debug, int, 0644); > > >>> > > >>> +module_param(max_vb_buffer_per_queue, ulong, 0644); > > >> > > >> There is no MODULE_PARM_DESC here? Please add. I see it is not there= for > > >> the debug param either, it should be added for that as well. > > > > > > Would this be the right time to consider resource accounting in V4L2 = for > > > buffers ? Having a module parameter doesn't sound very useful, an > > > application could easily allocate more buffers by using buffer orphan= ing > > > (allocating buffers, exporting them as dmabuf objects, and freeing th= em, > > > which leaves the memory allocated). Repeating allocation cycles up to > > > max_vb_buffer_per_queue will allow allocating an unbounded number of > > > buffers, using all the available system memory. I'd rather not add a > > > module argument that only gives the impression of some kind of safety > > > without actually providing any value. Good point. It's even simpler, just keep opening new vim2m instances and requesting max buffers :). > > > > Does dmabuf itself provide some accounting mechanism? Just wondering. > > > > More specific to V4L2: I'm not so sure about this module parameter eith= er. > > It makes sense to have a check somewhere against ridiculous values (i.e= . > > allocating MAXINT buffers), but that can be a define as well. But other= wise > > I am fine with allowing applications to allocate buffers until the memo= ry > > is full. > > > > The question is really: what is this parameter supposed to do? The only > > thing it does is to sanitize unlikely inputs (e.g. allocating MAXINT bu= ffers). > > > > I prefer that as a define, to be honest. > > > > I think it is perfectly fine for users to try to request more buffers t= han > > memory allows. It will just fail in that case, not a problem. > > > > And if an application is doing silly things like buffer orphaning, then= so > > what? Is that any different than allocating memory and not freeing it? > > Eventually it will run out of memory and crash, which is normal. > > Linux provides APIs to account for and limit usage of resources, > including memory. A system administrator can prevent rogue processes > from starving system resources. The memory consumed by vb2 buffer isn't > taken into account, making V4L2 essentially unsafe for untrusted > processes. I agree that proper accounting would be useful, although I wouldn't really make this patch series depend on it, since it's not introducing the loophole in the first place. We had some discussion about this in ChromeOS long ago and we thought it would be really useful for killing browser tabs with big videos, but otherwise using very little regular memory (e.g. via javascript). One challenge with accounting V4L2 allocations is how to count shared DMA-bufs. If one process allocates a V4L2 buffer, exports it to DMA-buf and then sends it to another process that keeps it alive, but frees the V4L2 buffer (and even closes the DMA-buf fd), should that memory be still accounted to it even though it doesn't hold a reference to it anymore? > > Now, to be fair, there are many reasons why allowing access to v4L2 > devices to untrusted applications is a bad idea, and memory consumption > is likely not even the worst one. Still, is this something we want to > fix, or do we want to consider V4L2 to be priviledged API only ? Right > now we can't do so, but with many Linux systems moving towards pipewire, > we could possibly have a system daemon isolating untrusted applications > from the rest of the system. We may thus not need to fix this in the > V4L2 API. > > -- > Regards, > > Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 891BFC7EE23 for ; Thu, 8 Jun 2023 10:25:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sP1u7TowAK0+ZiUN5H8tbMZBOo4I3zfmG3qtZnQ74vE=; b=wPQkoNqDM4YDGu CZ/QPofMLPFHKIeDpPo4O4alfe+2qBpZdXKnmHAExKqlojbh2j2Uko0aF2IQxQII42xP8ptGohQpa h2el+ZFBzcRhZPhLl3xFYQVw2If/DiYpgoYe3V3AJEhCpHBfm6GZ3BIqdWoapA0hT/kcZAaPXZW2D gP7qTda9ekBtDRD6/0zCEdjwMC71ZMreY7q2k4dXkCkuZ7kMiF6xtfDA+MyydJyGWhgLTOa17dABa 04Y6nGXG3t8T0gYuQR0g2FG/HMVoF5/fbEjvfLEJJxbPnd49D5wj3+Cl8TsM2GB7zTfkMItGGd7gO Oyu+br/OeKY1QBGrQo2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q7CpK-008pfF-2q; Thu, 08 Jun 2023 10:25:10 +0000 Received: from mail-qv1-xf33.google.com ([2607:f8b0:4864:20::f33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q7CpH-008pcU-20 for linux-rockchip@lists.infradead.org; Thu, 08 Jun 2023 10:25:09 +0000 Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-6260de7cfaeso3697636d6.2 for ; Thu, 08 Jun 2023 03:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=MTA84B0sr5UDGyDh5iVn5msSmAbrDm74UHfyejmOT+JGvEDf6wd4Is4XJesA/gh+/a XJqwzSWwyaifR7HuhXwN9A6CpAiG0Wbfa0lHg6Cz8rRrfoNOoxbQgveuYuIZwi65dPYk dVpMzwlSqrICOxm2BPty+v/UdVd/kKV9aTz+8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=Q0CXhBa+7wMgjX+QnG+n4A0YswbArBDXNXTterJ/TjNjUo/SanvY5JNML4fNIGxjXp VPwKdfSiS/p17QzBYZiEzw65o89Cbc95KRPe3Q+LCGvH12bJ51bZPGORFMoukUfsVD0D Y+EQu0nRgbnX8B3f2Z7jFrwOlixfs+fZccAEnKl2P22T7BAYsIDxJoGBECvAcDFVclbg AJPyYzLlIVYUrmH+tzWDEJ6Qa2UmHi1/L1nWq7nbF+BQ9UclfzGq8NRNP3wP9ca4KWS6 Y4r8iYT3+ljwdpQza2Sy2h248PdJRRyKxrhYfXngEXtmksfQEHFRSqACK8fOjWGQB3NF p2Rw== X-Gm-Message-State: AC+VfDwJZkv/UcE4BCn/qn/ge85biEXi1IJSQRDstrWdtYsySqUUfrwF Ht/kCZh4VuthMHcVMefsufz2xgje0dwXFMisD9kIUw== X-Google-Smtp-Source: ACHHUZ4uzPloK0Gd7GFdqLWmGacikfAqRU0Y4mic5Wc5aN0Rp9M4Ixbq3T6ATEqnKu6xHMe8LwDIJg== X-Received: by 2002:a05:6214:21ae:b0:628:6255:b4e6 with SMTP id t14-20020a05621421ae00b006286255b4e6mr1200075qvc.12.1686219900898; Thu, 08 Jun 2023 03:25:00 -0700 (PDT) Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com. [209.85.160.177]) by smtp.gmail.com with ESMTPSA id p8-20020a0ce188000000b006261a1cd7f7sm312669qvl.10.2023.06.08.03.25.00 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 03:25:00 -0700 (PDT) Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-3f9baa69682so4034391cf.3 for ; Thu, 08 Jun 2023 03:25:00 -0700 (PDT) X-Received: by 2002:ad4:5f0e:0:b0:623:690c:3cd7 with SMTP id fo14-20020ad45f0e000000b00623690c3cd7mr1200397qvb.47.1686219880090; Thu, 08 Jun 2023 03:24:40 -0700 (PDT) MIME-Version: 1.0 References: <20230321102855.346732-1-benjamin.gaignard@collabora.com> <20230321102855.346732-4-benjamin.gaignard@collabora.com> <6c4658fd-3a64-b3f8-67cd-17ed2d7d3567@xs4all.nl> <20230531080331.GB6496@pendragon.ideasonboard.com> <608ae7d6-3f3b-137d-08d2-d41a240be2c4@xs4all.nl> <20230531123945.GF27043@pendragon.ideasonboard.com> In-Reply-To: <20230531123945.GF27043@pendragon.ideasonboard.com> From: Tomasz Figa Date: Thu, 8 Jun 2023 19:24:29 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage To: Laurent Pinchart Cc: Hans Verkuil , Benjamin Gaignard , m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230608_032507_662898_65C80874 X-CRM114-Status: GOOD ( 43.80 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgOTozOeKAr1BNIExhdXJlbnQgUGluY2hhcnQKPGxhdXJl bnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4gd3JvdGU6Cj4KPiBPbiBXZWQsIE1heSAzMSwg MjAyMyBhdCAxMDozMDozNkFNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiBPbiA1LzMx LzIzIDEwOjAzLCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gPiBPbiBXZWQsIE1heSAzMSwg MjAyMyBhdCAwODozNjo1OUFNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiA+PiBPbiAy MS8wMy8yMDIzIDExOjI4LCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4+PiBBZGQgbW9k dWxlIHBhcmFtZXRlciAibWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUiIHRvIGJlIGFibGUgdG8gbGlt aXQKPiA+ID4+PiB0aGUgbnVtYmVyIG9mIHZiMiBidWZmZXJzIHN0b3JlIGluIHF1ZXVlLgo+ID4g Pj4+Cj4gPiA+Pj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdh aWduYXJkQGNvbGxhYm9yYS5jb20+Cj4gPiA+Pj4gLS0tCj4gPiA+Pj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIHwgMTUgKysrLS0tLS0tLS0tLS0tCj4g PiA+Pj4gIGluY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaCAgICAgICAgICAgICAgICAgIHwg MTEgKysrKysrKysrLS0KPiA+ID4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp LCAxNCBkZWxldGlvbnMoLSkKPiA+ID4+Pgo+ID4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21l ZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYyBiL2RyaXZlcnMvbWVkaWEvY29t bW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jCj4gPiA+Pj4gaW5kZXggYWU5ZDcyZjRkMTgx Li5mNGRhOTE3Y2NmM2YgMTAwNjQ0Cj4gPiA+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24v dmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4+PiArKysgYi9kcml2ZXJzL21lZGlhL2Nv bW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYwo+ID4gPj4+IEBAIC0zNCw2ICszNCw4IEBA Cj4gPiA+Pj4gIHN0YXRpYyBpbnQgZGVidWc7Cj4gPiA+Pj4gIG1vZHVsZV9wYXJhbShkZWJ1Zywg aW50LCAwNjQ0KTsKPiA+ID4+Pgo+ID4gPj4+ICttb2R1bGVfcGFyYW0obWF4X3ZiX2J1ZmZlcl9w ZXJfcXVldWUsIHVsb25nLCAwNjQ0KTsKPiA+ID4+Cj4gPiA+PiBUaGVyZSBpcyBubyBNT0RVTEVf UEFSTV9ERVNDIGhlcmU/IFBsZWFzZSBhZGQuIEkgc2VlIGl0IGlzIG5vdCB0aGVyZSBmb3IKPiA+ ID4+IHRoZSBkZWJ1ZyBwYXJhbSBlaXRoZXIsIGl0IHNob3VsZCBiZSBhZGRlZCBmb3IgdGhhdCBh cyB3ZWxsLgo+ID4gPgo+ID4gPiBXb3VsZCB0aGlzIGJlIHRoZSByaWdodCB0aW1lIHRvIGNvbnNp ZGVyIHJlc291cmNlIGFjY291bnRpbmcgaW4gVjRMMiBmb3IKPiA+ID4gYnVmZmVycyA/IEhhdmlu ZyBhIG1vZHVsZSBwYXJhbWV0ZXIgZG9lc24ndCBzb3VuZCB2ZXJ5IHVzZWZ1bCwgYW4KPiA+ID4g YXBwbGljYXRpb24gY291bGQgZWFzaWx5IGFsbG9jYXRlIG1vcmUgYnVmZmVycyBieSB1c2luZyBi dWZmZXIgb3JwaGFuaW5nCj4gPiA+IChhbGxvY2F0aW5nIGJ1ZmZlcnMsIGV4cG9ydGluZyB0aGVt IGFzIGRtYWJ1ZiBvYmplY3RzLCBhbmQgZnJlZWluZyB0aGVtLAo+ID4gPiB3aGljaCBsZWF2ZXMg dGhlIG1lbW9yeSBhbGxvY2F0ZWQpLiBSZXBlYXRpbmcgYWxsb2NhdGlvbiBjeWNsZXMgdXAgdG8K PiA+ID4gbWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUgd2lsbCBhbGxvdyBhbGxvY2F0aW5nIGFuIHVu Ym91bmRlZCBudW1iZXIgb2YKPiA+ID4gYnVmZmVycywgdXNpbmcgYWxsIHRoZSBhdmFpbGFibGUg c3lzdGVtIG1lbW9yeS4gSSdkIHJhdGhlciBub3QgYWRkIGEKPiA+ID4gbW9kdWxlIGFyZ3VtZW50 IHRoYXQgb25seSBnaXZlcyB0aGUgaW1wcmVzc2lvbiBvZiBzb21lIGtpbmQgb2Ygc2FmZXR5Cj4g PiA+IHdpdGhvdXQgYWN0dWFsbHkgcHJvdmlkaW5nIGFueSB2YWx1ZS4KCkdvb2QgcG9pbnQuIEl0 J3MgZXZlbiBzaW1wbGVyLCBqdXN0IGtlZXAgb3BlbmluZyBuZXcgdmltMm0gaW5zdGFuY2VzCmFu ZCByZXF1ZXN0aW5nIG1heCBidWZmZXJzIDopLgoKPiA+Cj4gPiBEb2VzIGRtYWJ1ZiBpdHNlbGYg cHJvdmlkZSBzb21lIGFjY291bnRpbmcgbWVjaGFuaXNtPyBKdXN0IHdvbmRlcmluZy4KPiA+Cj4g PiBNb3JlIHNwZWNpZmljIHRvIFY0TDI6IEknbSBub3Qgc28gc3VyZSBhYm91dCB0aGlzIG1vZHVs ZSBwYXJhbWV0ZXIgZWl0aGVyLgo+ID4gSXQgbWFrZXMgc2Vuc2UgdG8gaGF2ZSBhIGNoZWNrIHNv bWV3aGVyZSBhZ2FpbnN0IHJpZGljdWxvdXMgdmFsdWVzIChpLmUuCj4gPiBhbGxvY2F0aW5nIE1B WElOVCBidWZmZXJzKSwgYnV0IHRoYXQgY2FuIGJlIGEgZGVmaW5lIGFzIHdlbGwuIEJ1dCBvdGhl cndpc2UKPiA+IEkgYW0gZmluZSB3aXRoIGFsbG93aW5nIGFwcGxpY2F0aW9ucyB0byBhbGxvY2F0 ZSBidWZmZXJzIHVudGlsIHRoZSBtZW1vcnkKPiA+IGlzIGZ1bGwuCj4gPgo+ID4gVGhlIHF1ZXN0 aW9uIGlzIHJlYWxseTogd2hhdCBpcyB0aGlzIHBhcmFtZXRlciBzdXBwb3NlZCB0byBkbz8gVGhl IG9ubHkKPiA+IHRoaW5nIGl0IGRvZXMgaXMgdG8gc2FuaXRpemUgdW5saWtlbHkgaW5wdXRzIChl LmcuIGFsbG9jYXRpbmcgTUFYSU5UIGJ1ZmZlcnMpLgo+ID4KPiA+IEkgcHJlZmVyIHRoYXQgYXMg YSBkZWZpbmUsIHRvIGJlIGhvbmVzdC4KPiA+Cj4gPiBJIHRoaW5rIGl0IGlzIHBlcmZlY3RseSBm aW5lIGZvciB1c2VycyB0byB0cnkgdG8gcmVxdWVzdCBtb3JlIGJ1ZmZlcnMgdGhhbgo+ID4gbWVt b3J5IGFsbG93cy4gSXQgd2lsbCBqdXN0IGZhaWwgaW4gdGhhdCBjYXNlLCBub3QgYSBwcm9ibGVt Lgo+ID4KPiA+IEFuZCBpZiBhbiBhcHBsaWNhdGlvbiBpcyBkb2luZyBzaWxseSB0aGluZ3MgbGlr ZSBidWZmZXIgb3JwaGFuaW5nLCB0aGVuIHNvCj4gPiB3aGF0PyBJcyB0aGF0IGFueSBkaWZmZXJl bnQgdGhhbiBhbGxvY2F0aW5nIG1lbW9yeSBhbmQgbm90IGZyZWVpbmcgaXQ/Cj4gPiBFdmVudHVh bGx5IGl0IHdpbGwgcnVuIG91dCBvZiBtZW1vcnkgYW5kIGNyYXNoLCB3aGljaCBpcyBub3JtYWwu Cj4KPiBMaW51eCBwcm92aWRlcyBBUElzIHRvIGFjY291bnQgZm9yIGFuZCBsaW1pdCB1c2FnZSBv ZiByZXNvdXJjZXMsCj4gaW5jbHVkaW5nIG1lbW9yeS4gQSBzeXN0ZW0gYWRtaW5pc3RyYXRvciBj YW4gcHJldmVudCByb2d1ZSBwcm9jZXNzZXMKPiBmcm9tIHN0YXJ2aW5nIHN5c3RlbSByZXNvdXJj ZXMuIFRoZSBtZW1vcnkgY29uc3VtZWQgYnkgdmIyIGJ1ZmZlciBpc24ndAo+IHRha2VuIGludG8g YWNjb3VudCwgbWFraW5nIFY0TDIgZXNzZW50aWFsbHkgdW5zYWZlIGZvciB1bnRydXN0ZWQKPiBw cm9jZXNzZXMuCgpJIGFncmVlIHRoYXQgcHJvcGVyIGFjY291bnRpbmcgd291bGQgYmUgdXNlZnVs LCBhbHRob3VnaCBJIHdvdWxkbid0CnJlYWxseSBtYWtlIHRoaXMgcGF0Y2ggc2VyaWVzIGRlcGVu ZCBvbiBpdCwgc2luY2UgaXQncyBub3QgaW50cm9kdWNpbmcKdGhlIGxvb3Bob2xlIGluIHRoZSBm aXJzdCBwbGFjZS4KV2UgaGFkIHNvbWUgZGlzY3Vzc2lvbiBhYm91dCB0aGlzIGluIENocm9tZU9T IGxvbmcgYWdvIGFuZCB3ZSB0aG91Z2h0Cml0IHdvdWxkIGJlIHJlYWxseSB1c2VmdWwgZm9yIGtp bGxpbmcgYnJvd3NlciB0YWJzIHdpdGggYmlnIHZpZGVvcywKYnV0IG90aGVyd2lzZSB1c2luZyB2 ZXJ5IGxpdHRsZSByZWd1bGFyIG1lbW9yeSAoZS5nLiB2aWEgamF2YXNjcmlwdCkuCgpPbmUgY2hh bGxlbmdlIHdpdGggYWNjb3VudGluZyBWNEwyIGFsbG9jYXRpb25zIGlzIGhvdyB0byBjb3VudCBz aGFyZWQKRE1BLWJ1ZnMuIElmIG9uZSBwcm9jZXNzIGFsbG9jYXRlcyBhIFY0TDIgYnVmZmVyLCBl eHBvcnRzIGl0IHRvCkRNQS1idWYgYW5kIHRoZW4gc2VuZHMgaXQgdG8gYW5vdGhlciBwcm9jZXNz IHRoYXQga2VlcHMgaXQgYWxpdmUsIGJ1dApmcmVlcyB0aGUgVjRMMiBidWZmZXIgKGFuZCBldmVu IGNsb3NlcyB0aGUgRE1BLWJ1ZiBmZCksIHNob3VsZCB0aGF0Cm1lbW9yeSBiZSBzdGlsbCBhY2Nv dW50ZWQgdG8gaXQgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBob2xkIGEKcmVmZXJlbmNlIHRvIGl0 IGFueW1vcmU/Cgo+Cj4gTm93LCB0byBiZSBmYWlyLCB0aGVyZSBhcmUgbWFueSByZWFzb25zIHdo eSBhbGxvd2luZyBhY2Nlc3MgdG8gdjRMMgo+IGRldmljZXMgdG8gdW50cnVzdGVkIGFwcGxpY2F0 aW9ucyBpcyBhIGJhZCBpZGVhLCBhbmQgbWVtb3J5IGNvbnN1bXB0aW9uCj4gaXMgbGlrZWx5IG5v dCBldmVuIHRoZSB3b3JzdCBvbmUuIFN0aWxsLCBpcyB0aGlzIHNvbWV0aGluZyB3ZSB3YW50IHRv Cj4gZml4LCBvciBkbyB3ZSB3YW50IHRvIGNvbnNpZGVyIFY0TDIgdG8gYmUgcHJpdmlsZWRnZWQg QVBJIG9ubHkgPyBSaWdodAo+IG5vdyB3ZSBjYW4ndCBkbyBzbywgYnV0IHdpdGggbWFueSBMaW51 eCBzeXN0ZW1zIG1vdmluZyB0b3dhcmRzIHBpcGV3aXJlLAo+IHdlIGNvdWxkIHBvc3NpYmx5IGhh dmUgYSBzeXN0ZW0gZGFlbW9uIGlzb2xhdGluZyB1bnRydXN0ZWQgYXBwbGljYXRpb25zCj4gZnJv bSB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLiBXZSBtYXkgdGh1cyBub3QgbmVlZCB0byBmaXggdGhp cyBpbiB0aGUKPiBWNEwyIEFQSS4KPgo+IC0tCj4gUmVnYXJkcywKPgo+IExhdXJlbnQgUGluY2hh cnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2No aXAK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DED1FC7EE25 for ; Thu, 8 Jun 2023 10:25:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mVokHpz87kQMRBQlLmiOYlxc4gvoMwnTtapu9K+/iP0=; b=1hMeNq13wNDeOF qI88i1XO+IHHJpQXHcRo5V6aA2nUJLGOMRRW5JXeVO68oELThiGnnbwPAaYXcpoUUvHMW98vPfjl2 MEgqid3JQbH//AcuJMgrZpAXWwZO+ZUiDMOHll6Bl7XEuYyUWrOqsaDqyLoJpmG3DvlqbBpIVkVTs C7XeEtSwtCCgCI7wt8C1FFSP+Ngre2eNhxEe11KKAW241DW4k6JRZkVgFD5y0XBeDevypfwSIGWQB jY4KTH/3IYD4oC1NP9SnXY/QX4zOcvv8J0YHse6Hsuty5Zb++vBRX3MkCa8ReYGshiW2piqbCylfe 9sGzgQ+icmhytKHg9+YA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q7CpL-008pfk-2h; Thu, 08 Jun 2023 10:25:11 +0000 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q7CpH-008pcJ-2F for linux-arm-kernel@lists.infradead.org; Thu, 08 Jun 2023 10:25:09 +0000 Received: by mail-qk1-x72a.google.com with SMTP id af79cd13be357-75d4a4cf24aso36131685a.1 for ; Thu, 08 Jun 2023 03:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=MTA84B0sr5UDGyDh5iVn5msSmAbrDm74UHfyejmOT+JGvEDf6wd4Is4XJesA/gh+/a XJqwzSWwyaifR7HuhXwN9A6CpAiG0Wbfa0lHg6Cz8rRrfoNOoxbQgveuYuIZwi65dPYk dVpMzwlSqrICOxm2BPty+v/UdVd/kKV9aTz+8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686219901; x=1688811901; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M4tpowvLajrSGqwxArwQ8XTVeRE5lzXRcv/YtqNdBw4=; b=fe8HkjalirejXEzpC7EiHJfPlFyzbLNwSfklbvoen1QrPYC1Hwfg+kQmBzY7Mqb5R5 UoOpWIxNn042O8XYrax3ugADYmQif9+Hu9WKcz85GN+cRRc3wP0LXKOHPVMLGEdRdc4E OAI3jhz7XBxt985g2cfnAf3WDEtn2KYmP5BhjWfzFtdySYJxmJkMIxZianpsB06sh+qN K/ySWJPwLVwfQrpq4/UkL+i5ZtupWbeQOseBklRdi6BvLO2HmBJQ0q2oRf3Um85qXWFM WnF4tW1hZAWcF+Lygkh6w+r+9mkl8/rfXKSovu/fTv6vdC1mFwMjRdRAmCRFgxpYZ9SS NcVA== X-Gm-Message-State: AC+VfDyvhogmQU/8d3ObVwJrL01gL5HQT53KLeFCpChBaU8mHa8p9JJR eMpTHv8Cbt5t4gCLCI+xsAPNuLHQNIkeAqTMHnbWHg== X-Google-Smtp-Source: ACHHUZ5m7SpLqaLosuUxDhPbMWTbIEGS2GCt8flMeazgReXiq3nRRFF41jcctDxiONF+TzThLtWYjQ== X-Received: by 2002:a05:620a:2b4e:b0:75b:23a0:d9ed with SMTP id dp14-20020a05620a2b4e00b0075b23a0d9edmr5022153qkb.67.1686219900802; Thu, 08 Jun 2023 03:25:00 -0700 (PDT) Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com. [209.85.222.179]) by smtp.gmail.com with ESMTPSA id x13-20020ae9e90d000000b0075b01970aaasm236117qkf.32.2023.06.08.03.25.00 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 03:25:00 -0700 (PDT) Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-75d57fdb014so36846385a.0 for ; Thu, 08 Jun 2023 03:25:00 -0700 (PDT) X-Received: by 2002:ad4:5f0e:0:b0:623:690c:3cd7 with SMTP id fo14-20020ad45f0e000000b00623690c3cd7mr1200397qvb.47.1686219880090; Thu, 08 Jun 2023 03:24:40 -0700 (PDT) MIME-Version: 1.0 References: <20230321102855.346732-1-benjamin.gaignard@collabora.com> <20230321102855.346732-4-benjamin.gaignard@collabora.com> <6c4658fd-3a64-b3f8-67cd-17ed2d7d3567@xs4all.nl> <20230531080331.GB6496@pendragon.ideasonboard.com> <608ae7d6-3f3b-137d-08d2-d41a240be2c4@xs4all.nl> <20230531123945.GF27043@pendragon.ideasonboard.com> In-Reply-To: <20230531123945.GF27043@pendragon.ideasonboard.com> From: Tomasz Figa Date: Thu, 8 Jun 2023 19:24:29 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage To: Laurent Pinchart Cc: Hans Verkuil , Benjamin Gaignard , m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230608_032507_732676_FDC5871A X-CRM114-Status: GOOD ( 45.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgOTozOeKAr1BNIExhdXJlbnQgUGluY2hhcnQKPGxhdXJl bnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4gd3JvdGU6Cj4KPiBPbiBXZWQsIE1heSAzMSwg MjAyMyBhdCAxMDozMDozNkFNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiBPbiA1LzMx LzIzIDEwOjAzLCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gPiBPbiBXZWQsIE1heSAzMSwg MjAyMyBhdCAwODozNjo1OUFNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiA+PiBPbiAy MS8wMy8yMDIzIDExOjI4LCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4+PiBBZGQgbW9k dWxlIHBhcmFtZXRlciAibWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUiIHRvIGJlIGFibGUgdG8gbGlt aXQKPiA+ID4+PiB0aGUgbnVtYmVyIG9mIHZiMiBidWZmZXJzIHN0b3JlIGluIHF1ZXVlLgo+ID4g Pj4+Cj4gPiA+Pj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdh aWduYXJkQGNvbGxhYm9yYS5jb20+Cj4gPiA+Pj4gLS0tCj4gPiA+Pj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIHwgMTUgKysrLS0tLS0tLS0tLS0tCj4g PiA+Pj4gIGluY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaCAgICAgICAgICAgICAgICAgIHwg MTEgKysrKysrKysrLS0KPiA+ID4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp LCAxNCBkZWxldGlvbnMoLSkKPiA+ID4+Pgo+ID4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21l ZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYyBiL2RyaXZlcnMvbWVkaWEvY29t bW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jCj4gPiA+Pj4gaW5kZXggYWU5ZDcyZjRkMTgx Li5mNGRhOTE3Y2NmM2YgMTAwNjQ0Cj4gPiA+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24v dmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4+PiArKysgYi9kcml2ZXJzL21lZGlhL2Nv bW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYwo+ID4gPj4+IEBAIC0zNCw2ICszNCw4IEBA Cj4gPiA+Pj4gIHN0YXRpYyBpbnQgZGVidWc7Cj4gPiA+Pj4gIG1vZHVsZV9wYXJhbShkZWJ1Zywg aW50LCAwNjQ0KTsKPiA+ID4+Pgo+ID4gPj4+ICttb2R1bGVfcGFyYW0obWF4X3ZiX2J1ZmZlcl9w ZXJfcXVldWUsIHVsb25nLCAwNjQ0KTsKPiA+ID4+Cj4gPiA+PiBUaGVyZSBpcyBubyBNT0RVTEVf UEFSTV9ERVNDIGhlcmU/IFBsZWFzZSBhZGQuIEkgc2VlIGl0IGlzIG5vdCB0aGVyZSBmb3IKPiA+ ID4+IHRoZSBkZWJ1ZyBwYXJhbSBlaXRoZXIsIGl0IHNob3VsZCBiZSBhZGRlZCBmb3IgdGhhdCBh cyB3ZWxsLgo+ID4gPgo+ID4gPiBXb3VsZCB0aGlzIGJlIHRoZSByaWdodCB0aW1lIHRvIGNvbnNp ZGVyIHJlc291cmNlIGFjY291bnRpbmcgaW4gVjRMMiBmb3IKPiA+ID4gYnVmZmVycyA/IEhhdmlu ZyBhIG1vZHVsZSBwYXJhbWV0ZXIgZG9lc24ndCBzb3VuZCB2ZXJ5IHVzZWZ1bCwgYW4KPiA+ID4g YXBwbGljYXRpb24gY291bGQgZWFzaWx5IGFsbG9jYXRlIG1vcmUgYnVmZmVycyBieSB1c2luZyBi dWZmZXIgb3JwaGFuaW5nCj4gPiA+IChhbGxvY2F0aW5nIGJ1ZmZlcnMsIGV4cG9ydGluZyB0aGVt IGFzIGRtYWJ1ZiBvYmplY3RzLCBhbmQgZnJlZWluZyB0aGVtLAo+ID4gPiB3aGljaCBsZWF2ZXMg dGhlIG1lbW9yeSBhbGxvY2F0ZWQpLiBSZXBlYXRpbmcgYWxsb2NhdGlvbiBjeWNsZXMgdXAgdG8K PiA+ID4gbWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUgd2lsbCBhbGxvdyBhbGxvY2F0aW5nIGFuIHVu Ym91bmRlZCBudW1iZXIgb2YKPiA+ID4gYnVmZmVycywgdXNpbmcgYWxsIHRoZSBhdmFpbGFibGUg c3lzdGVtIG1lbW9yeS4gSSdkIHJhdGhlciBub3QgYWRkIGEKPiA+ID4gbW9kdWxlIGFyZ3VtZW50 IHRoYXQgb25seSBnaXZlcyB0aGUgaW1wcmVzc2lvbiBvZiBzb21lIGtpbmQgb2Ygc2FmZXR5Cj4g PiA+IHdpdGhvdXQgYWN0dWFsbHkgcHJvdmlkaW5nIGFueSB2YWx1ZS4KCkdvb2QgcG9pbnQuIEl0 J3MgZXZlbiBzaW1wbGVyLCBqdXN0IGtlZXAgb3BlbmluZyBuZXcgdmltMm0gaW5zdGFuY2VzCmFu ZCByZXF1ZXN0aW5nIG1heCBidWZmZXJzIDopLgoKPiA+Cj4gPiBEb2VzIGRtYWJ1ZiBpdHNlbGYg cHJvdmlkZSBzb21lIGFjY291bnRpbmcgbWVjaGFuaXNtPyBKdXN0IHdvbmRlcmluZy4KPiA+Cj4g PiBNb3JlIHNwZWNpZmljIHRvIFY0TDI6IEknbSBub3Qgc28gc3VyZSBhYm91dCB0aGlzIG1vZHVs ZSBwYXJhbWV0ZXIgZWl0aGVyLgo+ID4gSXQgbWFrZXMgc2Vuc2UgdG8gaGF2ZSBhIGNoZWNrIHNv bWV3aGVyZSBhZ2FpbnN0IHJpZGljdWxvdXMgdmFsdWVzIChpLmUuCj4gPiBhbGxvY2F0aW5nIE1B WElOVCBidWZmZXJzKSwgYnV0IHRoYXQgY2FuIGJlIGEgZGVmaW5lIGFzIHdlbGwuIEJ1dCBvdGhl cndpc2UKPiA+IEkgYW0gZmluZSB3aXRoIGFsbG93aW5nIGFwcGxpY2F0aW9ucyB0byBhbGxvY2F0 ZSBidWZmZXJzIHVudGlsIHRoZSBtZW1vcnkKPiA+IGlzIGZ1bGwuCj4gPgo+ID4gVGhlIHF1ZXN0 aW9uIGlzIHJlYWxseTogd2hhdCBpcyB0aGlzIHBhcmFtZXRlciBzdXBwb3NlZCB0byBkbz8gVGhl IG9ubHkKPiA+IHRoaW5nIGl0IGRvZXMgaXMgdG8gc2FuaXRpemUgdW5saWtlbHkgaW5wdXRzIChl LmcuIGFsbG9jYXRpbmcgTUFYSU5UIGJ1ZmZlcnMpLgo+ID4KPiA+IEkgcHJlZmVyIHRoYXQgYXMg YSBkZWZpbmUsIHRvIGJlIGhvbmVzdC4KPiA+Cj4gPiBJIHRoaW5rIGl0IGlzIHBlcmZlY3RseSBm aW5lIGZvciB1c2VycyB0byB0cnkgdG8gcmVxdWVzdCBtb3JlIGJ1ZmZlcnMgdGhhbgo+ID4gbWVt b3J5IGFsbG93cy4gSXQgd2lsbCBqdXN0IGZhaWwgaW4gdGhhdCBjYXNlLCBub3QgYSBwcm9ibGVt Lgo+ID4KPiA+IEFuZCBpZiBhbiBhcHBsaWNhdGlvbiBpcyBkb2luZyBzaWxseSB0aGluZ3MgbGlr ZSBidWZmZXIgb3JwaGFuaW5nLCB0aGVuIHNvCj4gPiB3aGF0PyBJcyB0aGF0IGFueSBkaWZmZXJl bnQgdGhhbiBhbGxvY2F0aW5nIG1lbW9yeSBhbmQgbm90IGZyZWVpbmcgaXQ/Cj4gPiBFdmVudHVh bGx5IGl0IHdpbGwgcnVuIG91dCBvZiBtZW1vcnkgYW5kIGNyYXNoLCB3aGljaCBpcyBub3JtYWwu Cj4KPiBMaW51eCBwcm92aWRlcyBBUElzIHRvIGFjY291bnQgZm9yIGFuZCBsaW1pdCB1c2FnZSBv ZiByZXNvdXJjZXMsCj4gaW5jbHVkaW5nIG1lbW9yeS4gQSBzeXN0ZW0gYWRtaW5pc3RyYXRvciBj YW4gcHJldmVudCByb2d1ZSBwcm9jZXNzZXMKPiBmcm9tIHN0YXJ2aW5nIHN5c3RlbSByZXNvdXJj ZXMuIFRoZSBtZW1vcnkgY29uc3VtZWQgYnkgdmIyIGJ1ZmZlciBpc24ndAo+IHRha2VuIGludG8g YWNjb3VudCwgbWFraW5nIFY0TDIgZXNzZW50aWFsbHkgdW5zYWZlIGZvciB1bnRydXN0ZWQKPiBw cm9jZXNzZXMuCgpJIGFncmVlIHRoYXQgcHJvcGVyIGFjY291bnRpbmcgd291bGQgYmUgdXNlZnVs LCBhbHRob3VnaCBJIHdvdWxkbid0CnJlYWxseSBtYWtlIHRoaXMgcGF0Y2ggc2VyaWVzIGRlcGVu ZCBvbiBpdCwgc2luY2UgaXQncyBub3QgaW50cm9kdWNpbmcKdGhlIGxvb3Bob2xlIGluIHRoZSBm aXJzdCBwbGFjZS4KV2UgaGFkIHNvbWUgZGlzY3Vzc2lvbiBhYm91dCB0aGlzIGluIENocm9tZU9T IGxvbmcgYWdvIGFuZCB3ZSB0aG91Z2h0Cml0IHdvdWxkIGJlIHJlYWxseSB1c2VmdWwgZm9yIGtp bGxpbmcgYnJvd3NlciB0YWJzIHdpdGggYmlnIHZpZGVvcywKYnV0IG90aGVyd2lzZSB1c2luZyB2 ZXJ5IGxpdHRsZSByZWd1bGFyIG1lbW9yeSAoZS5nLiB2aWEgamF2YXNjcmlwdCkuCgpPbmUgY2hh bGxlbmdlIHdpdGggYWNjb3VudGluZyBWNEwyIGFsbG9jYXRpb25zIGlzIGhvdyB0byBjb3VudCBz aGFyZWQKRE1BLWJ1ZnMuIElmIG9uZSBwcm9jZXNzIGFsbG9jYXRlcyBhIFY0TDIgYnVmZmVyLCBl eHBvcnRzIGl0IHRvCkRNQS1idWYgYW5kIHRoZW4gc2VuZHMgaXQgdG8gYW5vdGhlciBwcm9jZXNz IHRoYXQga2VlcHMgaXQgYWxpdmUsIGJ1dApmcmVlcyB0aGUgVjRMMiBidWZmZXIgKGFuZCBldmVu IGNsb3NlcyB0aGUgRE1BLWJ1ZiBmZCksIHNob3VsZCB0aGF0Cm1lbW9yeSBiZSBzdGlsbCBhY2Nv dW50ZWQgdG8gaXQgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBob2xkIGEKcmVmZXJlbmNlIHRvIGl0 IGFueW1vcmU/Cgo+Cj4gTm93LCB0byBiZSBmYWlyLCB0aGVyZSBhcmUgbWFueSByZWFzb25zIHdo eSBhbGxvd2luZyBhY2Nlc3MgdG8gdjRMMgo+IGRldmljZXMgdG8gdW50cnVzdGVkIGFwcGxpY2F0 aW9ucyBpcyBhIGJhZCBpZGVhLCBhbmQgbWVtb3J5IGNvbnN1bXB0aW9uCj4gaXMgbGlrZWx5IG5v dCBldmVuIHRoZSB3b3JzdCBvbmUuIFN0aWxsLCBpcyB0aGlzIHNvbWV0aGluZyB3ZSB3YW50IHRv Cj4gZml4LCBvciBkbyB3ZSB3YW50IHRvIGNvbnNpZGVyIFY0TDIgdG8gYmUgcHJpdmlsZWRnZWQg QVBJIG9ubHkgPyBSaWdodAo+IG5vdyB3ZSBjYW4ndCBkbyBzbywgYnV0IHdpdGggbWFueSBMaW51 eCBzeXN0ZW1zIG1vdmluZyB0b3dhcmRzIHBpcGV3aXJlLAo+IHdlIGNvdWxkIHBvc3NpYmx5IGhh dmUgYSBzeXN0ZW0gZGFlbW9uIGlzb2xhdGluZyB1bnRydXN0ZWQgYXBwbGljYXRpb25zCj4gZnJv bSB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLiBXZSBtYXkgdGh1cyBub3QgbmVlZCB0byBmaXggdGhp cyBpbiB0aGUKPiBWNEwyIEFQSS4KPgo+IC0tCj4gUmVnYXJkcywKPgo+IExhdXJlbnQgUGluY2hh cnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK