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 2166DC7EE29 for ; Thu, 8 Jun 2023 10:42:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233016AbjFHKm2 (ORCPT ); Thu, 8 Jun 2023 06:42:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229727AbjFHKm1 (ORCPT ); Thu, 8 Jun 2023 06:42:27 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3CC21AB; Thu, 8 Jun 2023 03:42:25 -0700 (PDT) Received: from pendragon.ideasonboard.com (om126033089000.35.openmobile.ne.jp [126.33.89.0]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 18545480; Thu, 8 Jun 2023 12:41:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1686220917; bh=HpyajXFq3Bn1xOynZKfJ657CvXa2Mt/KDZmQlXLGLBs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n4RD0gh/QbIyDCJw62QTaUdUTBgP5VKks+vXeLL9ThBAp+gdlvk3SqC0WnuLYuOFu kwDxjbDfNJhew0OqUoJ4/hWE5AdtvGP6tOc/K9oqjh0dFOn8FzbSh2pDm98NhXxZIJ wFjJd1htwDvwt8L0FKM8KSojiUSEugsNb6e0gVMk= Date: Thu, 8 Jun 2023 13:42:20 +0300 From: Laurent Pinchart To: Tomasz Figa 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 Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage Message-ID: <20230608104220.GP5058@pendragon.ideasonboard.com> 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> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Tomasz, On Thu, Jun 08, 2023 at 07:24:29PM +0900, Tomasz Figa wrote: > On Wed, May 31, 2023 at 9:39 PM 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/drivers/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 orphaning > > > > (allocating buffers, exporting them as dmabuf objects, and freeing them, > > > > 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 either. > > > 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 otherwise > > > I am fine with allowing applications to allocate buffers until the memory > > > 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 buffers). > > > > > > I prefer that as a define, to be honest. > > > > > > I think it is perfectly fine for users to try to request more buffers than > > > 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. No disagreement here, my concern was about introducing a workaround for the lack of proper memory accounting. I'd like to avoid the workaround, but it doesn't mean memory accounting has to be implement now. > 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? I've thought about that too. It's an annoying problem, it should probably be discussed with memory management developers. > > 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 2E8E9C7EE29 for ; Thu, 8 Jun 2023 10:42:41 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=MA02NWEyaS9z0JKn6YTKXizQ3r3uLcpW3pLqJUWWgZM=; b=WIwsAjZmjdvEcV FDnKXlwPaIzM+9oEhn4/MF4Bw3KXxXFblNqP+Dyhfc4KVBnnK8XG6OC3G4wNw0PJjXdFz3a4o9+5L +jLFuNzsfl8NzB529HJFGq/XYpZX7fWUyPMdQ5mQVF/5iFBAgDdNDMRgW9oxGbW/HavJ9JhuOPfgH MJ4h3u5Naf2hIHJPr5wfSzNeFrCFWECPz176Xa0SbU8nKHcuwB7uK3eIkyk7OekjNSQ2Aw3e8Pv7w oehh/dxdnYCgsk5s87Czsi0s3pwTLHeRmsGrq6vZ2eacC9NUELa47i9rHO5+Ljc/aL6hSHLQUcSDx QTYNUjkmLlywxMKbtHPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q7D69-008vHc-1a; Thu, 08 Jun 2023 10:42:33 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q7D65-008vB7-35; Thu, 08 Jun 2023 10:42:31 +0000 Received: from pendragon.ideasonboard.com (om126033089000.35.openmobile.ne.jp [126.33.89.0]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 18545480; Thu, 8 Jun 2023 12:41:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1686220917; bh=HpyajXFq3Bn1xOynZKfJ657CvXa2Mt/KDZmQlXLGLBs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n4RD0gh/QbIyDCJw62QTaUdUTBgP5VKks+vXeLL9ThBAp+gdlvk3SqC0WnuLYuOFu kwDxjbDfNJhew0OqUoJ4/hWE5AdtvGP6tOc/K9oqjh0dFOn8FzbSh2pDm98NhXxZIJ wFjJd1htwDvwt8L0FKM8KSojiUSEugsNb6e0gVMk= Date: Thu, 8 Jun 2023 13:42:20 +0300 From: Laurent Pinchart To: Tomasz Figa 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 Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage Message-ID: <20230608104220.GP5058@pendragon.ideasonboard.com> 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> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230608_034230_161879_BA7AFD9D X-CRM114-Status: GOOD ( 49.60 ) 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 SGkgVG9tYXN6LAoKT24gVGh1LCBKdW4gMDgsIDIwMjMgYXQgMDc6MjQ6MjlQTSArMDkwMCwgVG9t YXN6IEZpZ2Egd3JvdGU6Cj4gT24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgOTozOeKAr1BNIExhdXJl bnQgUGluY2hhcnQgd3JvdGU6Cj4gPiBPbiBXZWQsIE1heSAzMSwgMjAyMyBhdCAxMDozMDozNkFN ICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiA+IE9uIDUvMzEvMjMgMTA6MDMsIExhdXJl bnQgUGluY2hhcnQgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgMDg6MzY6 NTlBTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOgo+ID4gPiA+PiBPbiAyMS8wMy8yMDIzIDEx OjI4LCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4gPj4+IEFkZCBtb2R1bGUgcGFyYW1l dGVyICJtYXhfdmJfYnVmZmVyX3Blcl9xdWV1ZSIgdG8gYmUgYWJsZSB0byBsaW1pdAo+ID4gPiA+ Pj4gdGhlIG51bWJlciBvZiB2YjIgYnVmZmVycyBzdG9yZSBpbiBxdWV1ZS4KPiA+ID4gPj4+Cj4g PiA+ID4+PiBTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25h cmRAY29sbGFib3JhLmNvbT4KPiA+ID4gPj4+IC0tLQo+ID4gPiA+Pj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIHwgMTUgKysrLS0tLS0tLS0tLS0tCj4g PiA+ID4+PiAgaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oICAgICAgICAgICAgICAgICAg fCAxMSArKysrKysrKystLQo+ID4gPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIGIvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4gPj4+IGluZGV4IGFl OWQ3MmY0ZDE4MS4uZjRkYTkxN2NjZjNmIDEwMDY0NAo+ID4gPiA+Pj4gLS0tIGEvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4gPj4+ICsrKyBiL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jCj4gPiA+ID4+PiBA QCAtMzQsNiArMzQsOCBAQAo+ID4gPiA+Pj4gIHN0YXRpYyBpbnQgZGVidWc7Cj4gPiA+ID4+PiAg bW9kdWxlX3BhcmFtKGRlYnVnLCBpbnQsIDA2NDQpOwo+ID4gPiA+Pj4KPiA+ID4gPj4+ICttb2R1 bGVfcGFyYW0obWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUsIHVsb25nLCAwNjQ0KTsKPiA+ID4gPj4K PiA+ID4gPj4gVGhlcmUgaXMgbm8gTU9EVUxFX1BBUk1fREVTQyBoZXJlPyBQbGVhc2UgYWRkLiBJ IHNlZSBpdCBpcyBub3QgdGhlcmUgZm9yCj4gPiA+ID4+IHRoZSBkZWJ1ZyBwYXJhbSBlaXRoZXIs IGl0IHNob3VsZCBiZSBhZGRlZCBmb3IgdGhhdCBhcyB3ZWxsLgo+ID4gPiA+Cj4gPiA+ID4gV291 bGQgdGhpcyBiZSB0aGUgcmlnaHQgdGltZSB0byBjb25zaWRlciByZXNvdXJjZSBhY2NvdW50aW5n IGluIFY0TDIgZm9yCj4gPiA+ID4gYnVmZmVycyA/IEhhdmluZyBhIG1vZHVsZSBwYXJhbWV0ZXIg ZG9lc24ndCBzb3VuZCB2ZXJ5IHVzZWZ1bCwgYW4KPiA+ID4gPiBhcHBsaWNhdGlvbiBjb3VsZCBl YXNpbHkgYWxsb2NhdGUgbW9yZSBidWZmZXJzIGJ5IHVzaW5nIGJ1ZmZlciBvcnBoYW5pbmcKPiA+ ID4gPiAoYWxsb2NhdGluZyBidWZmZXJzLCBleHBvcnRpbmcgdGhlbSBhcyBkbWFidWYgb2JqZWN0 cywgYW5kIGZyZWVpbmcgdGhlbSwKPiA+ID4gPiB3aGljaCBsZWF2ZXMgdGhlIG1lbW9yeSBhbGxv Y2F0ZWQpLiBSZXBlYXRpbmcgYWxsb2NhdGlvbiBjeWNsZXMgdXAgdG8KPiA+ID4gPiBtYXhfdmJf YnVmZmVyX3Blcl9xdWV1ZSB3aWxsIGFsbG93IGFsbG9jYXRpbmcgYW4gdW5ib3VuZGVkIG51bWJl ciBvZgo+ID4gPiA+IGJ1ZmZlcnMsIHVzaW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN5c3RlbSBtZW1v cnkuIEknZCByYXRoZXIgbm90IGFkZCBhCj4gPiA+ID4gbW9kdWxlIGFyZ3VtZW50IHRoYXQgb25s eSBnaXZlcyB0aGUgaW1wcmVzc2lvbiBvZiBzb21lIGtpbmQgb2Ygc2FmZXR5Cj4gPiA+ID4gd2l0 aG91dCBhY3R1YWxseSBwcm92aWRpbmcgYW55IHZhbHVlLgo+IAo+IEdvb2QgcG9pbnQuIEl0J3Mg ZXZlbiBzaW1wbGVyLCBqdXN0IGtlZXAgb3BlbmluZyBuZXcgdmltMm0gaW5zdGFuY2VzCj4gYW5k IHJlcXVlc3RpbmcgbWF4IGJ1ZmZlcnMgOikuCj4gCj4gPiA+Cj4gPiA+IERvZXMgZG1hYnVmIGl0 c2VsZiBwcm92aWRlIHNvbWUgYWNjb3VudGluZyBtZWNoYW5pc20/IEp1c3Qgd29uZGVyaW5nLgo+ ID4gPgo+ID4gPiBNb3JlIHNwZWNpZmljIHRvIFY0TDI6IEknbSBub3Qgc28gc3VyZSBhYm91dCB0 aGlzIG1vZHVsZSBwYXJhbWV0ZXIgZWl0aGVyLgo+ID4gPiBJdCBtYWtlcyBzZW5zZSB0byBoYXZl IGEgY2hlY2sgc29tZXdoZXJlIGFnYWluc3QgcmlkaWN1bG91cyB2YWx1ZXMgKGkuZS4KPiA+ID4g YWxsb2NhdGluZyBNQVhJTlQgYnVmZmVycyksIGJ1dCB0aGF0IGNhbiBiZSBhIGRlZmluZSBhcyB3 ZWxsLiBCdXQgb3RoZXJ3aXNlCj4gPiA+IEkgYW0gZmluZSB3aXRoIGFsbG93aW5nIGFwcGxpY2F0 aW9ucyB0byBhbGxvY2F0ZSBidWZmZXJzIHVudGlsIHRoZSBtZW1vcnkKPiA+ID4gaXMgZnVsbC4K PiA+ID4KPiA+ID4gVGhlIHF1ZXN0aW9uIGlzIHJlYWxseTogd2hhdCBpcyB0aGlzIHBhcmFtZXRl ciBzdXBwb3NlZCB0byBkbz8gVGhlIG9ubHkKPiA+ID4gdGhpbmcgaXQgZG9lcyBpcyB0byBzYW5p dGl6ZSB1bmxpa2VseSBpbnB1dHMgKGUuZy4gYWxsb2NhdGluZyBNQVhJTlQgYnVmZmVycykuCj4g PiA+Cj4gPiA+IEkgcHJlZmVyIHRoYXQgYXMgYSBkZWZpbmUsIHRvIGJlIGhvbmVzdC4KPiA+ID4K PiA+ID4gSSB0aGluayBpdCBpcyBwZXJmZWN0bHkgZmluZSBmb3IgdXNlcnMgdG8gdHJ5IHRvIHJl cXVlc3QgbW9yZSBidWZmZXJzIHRoYW4KPiA+ID4gbWVtb3J5IGFsbG93cy4gSXQgd2lsbCBqdXN0 IGZhaWwgaW4gdGhhdCBjYXNlLCBub3QgYSBwcm9ibGVtLgo+ID4gPgo+ID4gPiBBbmQgaWYgYW4g YXBwbGljYXRpb24gaXMgZG9pbmcgc2lsbHkgdGhpbmdzIGxpa2UgYnVmZmVyIG9ycGhhbmluZywg dGhlbiBzbwo+ID4gPiB3aGF0PyBJcyB0aGF0IGFueSBkaWZmZXJlbnQgdGhhbiBhbGxvY2F0aW5n IG1lbW9yeSBhbmQgbm90IGZyZWVpbmcgaXQ/Cj4gPiA+IEV2ZW50dWFsbHkgaXQgd2lsbCBydW4g b3V0IG9mIG1lbW9yeSBhbmQgY3Jhc2gsIHdoaWNoIGlzIG5vcm1hbC4KPiA+Cj4gPiBMaW51eCBw cm92aWRlcyBBUElzIHRvIGFjY291bnQgZm9yIGFuZCBsaW1pdCB1c2FnZSBvZiByZXNvdXJjZXMs Cj4gPiBpbmNsdWRpbmcgbWVtb3J5LiBBIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGNhbiBwcmV2ZW50 IHJvZ3VlIHByb2Nlc3Nlcwo+ID4gZnJvbSBzdGFydmluZyBzeXN0ZW0gcmVzb3VyY2VzLiBUaGUg bWVtb3J5IGNvbnN1bWVkIGJ5IHZiMiBidWZmZXIgaXNuJ3QKPiA+IHRha2VuIGludG8gYWNjb3Vu dCwgbWFraW5nIFY0TDIgZXNzZW50aWFsbHkgdW5zYWZlIGZvciB1bnRydXN0ZWQKPiA+IHByb2Nl c3Nlcy4KPiAKPiBJIGFncmVlIHRoYXQgcHJvcGVyIGFjY291bnRpbmcgd291bGQgYmUgdXNlZnVs LCBhbHRob3VnaCBJIHdvdWxkbid0Cj4gcmVhbGx5IG1ha2UgdGhpcyBwYXRjaCBzZXJpZXMgZGVw ZW5kIG9uIGl0LCBzaW5jZSBpdCdzIG5vdCBpbnRyb2R1Y2luZwo+IHRoZSBsb29waG9sZSBpbiB0 aGUgZmlyc3QgcGxhY2UuCgpObyBkaXNhZ3JlZW1lbnQgaGVyZSwgbXkgY29uY2VybiB3YXMgYWJv dXQgaW50cm9kdWNpbmcgYSB3b3JrYXJvdW5kIGZvcgp0aGUgbGFjayBvZiBwcm9wZXIgbWVtb3J5 IGFjY291bnRpbmcuIEknZCBsaWtlIHRvIGF2b2lkIHRoZSB3b3JrYXJvdW5kLApidXQgaXQgZG9l c24ndCBtZWFuIG1lbW9yeSBhY2NvdW50aW5nIGhhcyB0byBiZSBpbXBsZW1lbnQgbm93LgoKPiBX ZSBoYWQgc29tZSBkaXNjdXNzaW9uIGFib3V0IHRoaXMgaW4gQ2hyb21lT1MgbG9uZyBhZ28gYW5k IHdlIHRob3VnaHQKPiBpdCB3b3VsZCBiZSByZWFsbHkgdXNlZnVsIGZvciBraWxsaW5nIGJyb3dz ZXIgdGFicyB3aXRoIGJpZyB2aWRlb3MsCj4gYnV0IG90aGVyd2lzZSB1c2luZyB2ZXJ5IGxpdHRs ZSByZWd1bGFyIG1lbW9yeSAoZS5nLiB2aWEgamF2YXNjcmlwdCkuCj4gCj4gT25lIGNoYWxsZW5n ZSB3aXRoIGFjY291bnRpbmcgVjRMMiBhbGxvY2F0aW9ucyBpcyBob3cgdG8gY291bnQgc2hhcmVk Cj4gRE1BLWJ1ZnMuIElmIG9uZSBwcm9jZXNzIGFsbG9jYXRlcyBhIFY0TDIgYnVmZmVyLCBleHBv cnRzIGl0IHRvCj4gRE1BLWJ1ZiBhbmQgdGhlbiBzZW5kcyBpdCB0byBhbm90aGVyIHByb2Nlc3Mg dGhhdCBrZWVwcyBpdCBhbGl2ZSwgYnV0Cj4gZnJlZXMgdGhlIFY0TDIgYnVmZmVyIChhbmQgZXZl biBjbG9zZXMgdGhlIERNQS1idWYgZmQpLCBzaG91bGQgdGhhdAo+IG1lbW9yeSBiZSBzdGlsbCBh Y2NvdW50ZWQgdG8gaXQgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBob2xkIGEKPiByZWZlcmVuY2Ug dG8gaXQgYW55bW9yZT8KCkkndmUgdGhvdWdodCBhYm91dCB0aGF0IHRvby4gSXQncyBhbiBhbm5v eWluZyBwcm9ibGVtLCBpdCBzaG91bGQKcHJvYmFibHkgYmUgZGlzY3Vzc2VkIHdpdGggbWVtb3J5 IG1hbmFnZW1lbnQgZGV2ZWxvcGVycy4KCj4gPiBOb3csIHRvIGJlIGZhaXIsIHRoZXJlIGFyZSBt YW55IHJlYXNvbnMgd2h5IGFsbG93aW5nIGFjY2VzcyB0byB2NEwyCj4gPiBkZXZpY2VzIHRvIHVu dHJ1c3RlZCBhcHBsaWNhdGlvbnMgaXMgYSBiYWQgaWRlYSwgYW5kIG1lbW9yeSBjb25zdW1wdGlv bgo+ID4gaXMgbGlrZWx5IG5vdCBldmVuIHRoZSB3b3JzdCBvbmUuIFN0aWxsLCBpcyB0aGlzIHNv bWV0aGluZyB3ZSB3YW50IHRvCj4gPiBmaXgsIG9yIGRvIHdlIHdhbnQgdG8gY29uc2lkZXIgVjRM MiB0byBiZSBwcml2aWxlZGdlZCBBUEkgb25seSA/IFJpZ2h0Cj4gPiBub3cgd2UgY2FuJ3QgZG8g c28sIGJ1dCB3aXRoIG1hbnkgTGludXggc3lzdGVtcyBtb3ZpbmcgdG93YXJkcyBwaXBld2lyZSwK PiA+IHdlIGNvdWxkIHBvc3NpYmx5IGhhdmUgYSBzeXN0ZW0gZGFlbW9uIGlzb2xhdGluZyB1bnRy dXN0ZWQgYXBwbGljYXRpb25zCj4gPiBmcm9tIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uIFdlIG1h eSB0aHVzIG5vdCBuZWVkIHRvIGZpeCB0aGlzIGluIHRoZQo+ID4gVjRMMiBBUEkuCgotLSAKUmVn YXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hp cEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtcm9ja2NoaXAK 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 1F0ADC7EE45 for ; Thu, 8 Jun 2023 10:42:57 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=oGXSizb8tunIiTCdmaLOQV2MWooS4MwEurowrSIZfOg=; b=j6BmbZf4Pyf8Ni z+W1GLr5zekT9xSmpyv87P4mATi4oFXHgb68PYKL0w+vuo9/t2Lcw2LkVPOuQQHUpaFSjOig4dkNJ fCa0j/3ag7Bmj7VxD4TA7ol3FjCqIFwoteoVW++Mh3y2lRjs73Z+KJxaFYUKfj7uJ/GT9tQcakOYt cZxsladmkZHRLRC68jqHlr8W/2+3TW7CSA06Em3GO+POsABlAQCpv0ixzZ7dhZLShIEhhNPni+lNW mWEpfHVGogpgLbkNTe9LOqo2DArUa6urGlB03zLCDqsnHtCwacVPhIOe/McZlPKjg27Udqtp7HODK y9yZvxvTyxxL1LLOqm4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q7D68-008vGR-1J; Thu, 08 Jun 2023 10:42:32 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q7D65-008vB7-35; Thu, 08 Jun 2023 10:42:31 +0000 Received: from pendragon.ideasonboard.com (om126033089000.35.openmobile.ne.jp [126.33.89.0]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 18545480; Thu, 8 Jun 2023 12:41:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1686220917; bh=HpyajXFq3Bn1xOynZKfJ657CvXa2Mt/KDZmQlXLGLBs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n4RD0gh/QbIyDCJw62QTaUdUTBgP5VKks+vXeLL9ThBAp+gdlvk3SqC0WnuLYuOFu kwDxjbDfNJhew0OqUoJ4/hWE5AdtvGP6tOc/K9oqjh0dFOn8FzbSh2pDm98NhXxZIJ wFjJd1htwDvwt8L0FKM8KSojiUSEugsNb6e0gVMk= Date: Thu, 8 Jun 2023 13:42:20 +0300 From: Laurent Pinchart To: Tomasz Figa 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 Subject: Re: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage Message-ID: <20230608104220.GP5058@pendragon.ideasonboard.com> 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> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230608_034230_161879_BA7AFD9D X-CRM114-Status: GOOD ( 49.60 ) 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 SGkgVG9tYXN6LAoKT24gVGh1LCBKdW4gMDgsIDIwMjMgYXQgMDc6MjQ6MjlQTSArMDkwMCwgVG9t YXN6IEZpZ2Egd3JvdGU6Cj4gT24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgOTozOeKAr1BNIExhdXJl bnQgUGluY2hhcnQgd3JvdGU6Cj4gPiBPbiBXZWQsIE1heSAzMSwgMjAyMyBhdCAxMDozMDozNkFN ICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4gPiA+IE9uIDUvMzEvMjMgMTA6MDMsIExhdXJl bnQgUGluY2hhcnQgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBNYXkgMzEsIDIwMjMgYXQgMDg6MzY6 NTlBTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOgo+ID4gPiA+PiBPbiAyMS8wMy8yMDIzIDEx OjI4LCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4gPj4+IEFkZCBtb2R1bGUgcGFyYW1l dGVyICJtYXhfdmJfYnVmZmVyX3Blcl9xdWV1ZSIgdG8gYmUgYWJsZSB0byBsaW1pdAo+ID4gPiA+ Pj4gdGhlIG51bWJlciBvZiB2YjIgYnVmZmVycyBzdG9yZSBpbiBxdWV1ZS4KPiA+ID4gPj4+Cj4g PiA+ID4+PiBTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25h cmRAY29sbGFib3JhLmNvbT4KPiA+ID4gPj4+IC0tLQo+ID4gPiA+Pj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIHwgMTUgKysrLS0tLS0tLS0tLS0tCj4g PiA+ID4+PiAgaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oICAgICAgICAgICAgICAgICAg fCAxMSArKysrKysrKystLQo+ID4gPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jIGIvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4gPj4+IGluZGV4IGFl OWQ3MmY0ZDE4MS4uZjRkYTkxN2NjZjNmIDEwMDY0NAo+ID4gPiA+Pj4gLS0tIGEvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMKPiA+ID4gPj4+ICsrKyBiL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jCj4gPiA+ID4+PiBA QCAtMzQsNiArMzQsOCBAQAo+ID4gPiA+Pj4gIHN0YXRpYyBpbnQgZGVidWc7Cj4gPiA+ID4+PiAg bW9kdWxlX3BhcmFtKGRlYnVnLCBpbnQsIDA2NDQpOwo+ID4gPiA+Pj4KPiA+ID4gPj4+ICttb2R1 bGVfcGFyYW0obWF4X3ZiX2J1ZmZlcl9wZXJfcXVldWUsIHVsb25nLCAwNjQ0KTsKPiA+ID4gPj4K PiA+ID4gPj4gVGhlcmUgaXMgbm8gTU9EVUxFX1BBUk1fREVTQyBoZXJlPyBQbGVhc2UgYWRkLiBJ IHNlZSBpdCBpcyBub3QgdGhlcmUgZm9yCj4gPiA+ID4+IHRoZSBkZWJ1ZyBwYXJhbSBlaXRoZXIs IGl0IHNob3VsZCBiZSBhZGRlZCBmb3IgdGhhdCBhcyB3ZWxsLgo+ID4gPiA+Cj4gPiA+ID4gV291 bGQgdGhpcyBiZSB0aGUgcmlnaHQgdGltZSB0byBjb25zaWRlciByZXNvdXJjZSBhY2NvdW50aW5n IGluIFY0TDIgZm9yCj4gPiA+ID4gYnVmZmVycyA/IEhhdmluZyBhIG1vZHVsZSBwYXJhbWV0ZXIg ZG9lc24ndCBzb3VuZCB2ZXJ5IHVzZWZ1bCwgYW4KPiA+ID4gPiBhcHBsaWNhdGlvbiBjb3VsZCBl YXNpbHkgYWxsb2NhdGUgbW9yZSBidWZmZXJzIGJ5IHVzaW5nIGJ1ZmZlciBvcnBoYW5pbmcKPiA+ ID4gPiAoYWxsb2NhdGluZyBidWZmZXJzLCBleHBvcnRpbmcgdGhlbSBhcyBkbWFidWYgb2JqZWN0 cywgYW5kIGZyZWVpbmcgdGhlbSwKPiA+ID4gPiB3aGljaCBsZWF2ZXMgdGhlIG1lbW9yeSBhbGxv Y2F0ZWQpLiBSZXBlYXRpbmcgYWxsb2NhdGlvbiBjeWNsZXMgdXAgdG8KPiA+ID4gPiBtYXhfdmJf YnVmZmVyX3Blcl9xdWV1ZSB3aWxsIGFsbG93IGFsbG9jYXRpbmcgYW4gdW5ib3VuZGVkIG51bWJl ciBvZgo+ID4gPiA+IGJ1ZmZlcnMsIHVzaW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN5c3RlbSBtZW1v cnkuIEknZCByYXRoZXIgbm90IGFkZCBhCj4gPiA+ID4gbW9kdWxlIGFyZ3VtZW50IHRoYXQgb25s eSBnaXZlcyB0aGUgaW1wcmVzc2lvbiBvZiBzb21lIGtpbmQgb2Ygc2FmZXR5Cj4gPiA+ID4gd2l0 aG91dCBhY3R1YWxseSBwcm92aWRpbmcgYW55IHZhbHVlLgo+IAo+IEdvb2QgcG9pbnQuIEl0J3Mg ZXZlbiBzaW1wbGVyLCBqdXN0IGtlZXAgb3BlbmluZyBuZXcgdmltMm0gaW5zdGFuY2VzCj4gYW5k IHJlcXVlc3RpbmcgbWF4IGJ1ZmZlcnMgOikuCj4gCj4gPiA+Cj4gPiA+IERvZXMgZG1hYnVmIGl0 c2VsZiBwcm92aWRlIHNvbWUgYWNjb3VudGluZyBtZWNoYW5pc20/IEp1c3Qgd29uZGVyaW5nLgo+ ID4gPgo+ID4gPiBNb3JlIHNwZWNpZmljIHRvIFY0TDI6IEknbSBub3Qgc28gc3VyZSBhYm91dCB0 aGlzIG1vZHVsZSBwYXJhbWV0ZXIgZWl0aGVyLgo+ID4gPiBJdCBtYWtlcyBzZW5zZSB0byBoYXZl IGEgY2hlY2sgc29tZXdoZXJlIGFnYWluc3QgcmlkaWN1bG91cyB2YWx1ZXMgKGkuZS4KPiA+ID4g YWxsb2NhdGluZyBNQVhJTlQgYnVmZmVycyksIGJ1dCB0aGF0IGNhbiBiZSBhIGRlZmluZSBhcyB3 ZWxsLiBCdXQgb3RoZXJ3aXNlCj4gPiA+IEkgYW0gZmluZSB3aXRoIGFsbG93aW5nIGFwcGxpY2F0 aW9ucyB0byBhbGxvY2F0ZSBidWZmZXJzIHVudGlsIHRoZSBtZW1vcnkKPiA+ID4gaXMgZnVsbC4K PiA+ID4KPiA+ID4gVGhlIHF1ZXN0aW9uIGlzIHJlYWxseTogd2hhdCBpcyB0aGlzIHBhcmFtZXRl ciBzdXBwb3NlZCB0byBkbz8gVGhlIG9ubHkKPiA+ID4gdGhpbmcgaXQgZG9lcyBpcyB0byBzYW5p dGl6ZSB1bmxpa2VseSBpbnB1dHMgKGUuZy4gYWxsb2NhdGluZyBNQVhJTlQgYnVmZmVycykuCj4g PiA+Cj4gPiA+IEkgcHJlZmVyIHRoYXQgYXMgYSBkZWZpbmUsIHRvIGJlIGhvbmVzdC4KPiA+ID4K PiA+ID4gSSB0aGluayBpdCBpcyBwZXJmZWN0bHkgZmluZSBmb3IgdXNlcnMgdG8gdHJ5IHRvIHJl cXVlc3QgbW9yZSBidWZmZXJzIHRoYW4KPiA+ID4gbWVtb3J5IGFsbG93cy4gSXQgd2lsbCBqdXN0 IGZhaWwgaW4gdGhhdCBjYXNlLCBub3QgYSBwcm9ibGVtLgo+ID4gPgo+ID4gPiBBbmQgaWYgYW4g YXBwbGljYXRpb24gaXMgZG9pbmcgc2lsbHkgdGhpbmdzIGxpa2UgYnVmZmVyIG9ycGhhbmluZywg dGhlbiBzbwo+ID4gPiB3aGF0PyBJcyB0aGF0IGFueSBkaWZmZXJlbnQgdGhhbiBhbGxvY2F0aW5n IG1lbW9yeSBhbmQgbm90IGZyZWVpbmcgaXQ/Cj4gPiA+IEV2ZW50dWFsbHkgaXQgd2lsbCBydW4g b3V0IG9mIG1lbW9yeSBhbmQgY3Jhc2gsIHdoaWNoIGlzIG5vcm1hbC4KPiA+Cj4gPiBMaW51eCBw cm92aWRlcyBBUElzIHRvIGFjY291bnQgZm9yIGFuZCBsaW1pdCB1c2FnZSBvZiByZXNvdXJjZXMs Cj4gPiBpbmNsdWRpbmcgbWVtb3J5LiBBIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGNhbiBwcmV2ZW50 IHJvZ3VlIHByb2Nlc3Nlcwo+ID4gZnJvbSBzdGFydmluZyBzeXN0ZW0gcmVzb3VyY2VzLiBUaGUg bWVtb3J5IGNvbnN1bWVkIGJ5IHZiMiBidWZmZXIgaXNuJ3QKPiA+IHRha2VuIGludG8gYWNjb3Vu dCwgbWFraW5nIFY0TDIgZXNzZW50aWFsbHkgdW5zYWZlIGZvciB1bnRydXN0ZWQKPiA+IHByb2Nl c3Nlcy4KPiAKPiBJIGFncmVlIHRoYXQgcHJvcGVyIGFjY291bnRpbmcgd291bGQgYmUgdXNlZnVs LCBhbHRob3VnaCBJIHdvdWxkbid0Cj4gcmVhbGx5IG1ha2UgdGhpcyBwYXRjaCBzZXJpZXMgZGVw ZW5kIG9uIGl0LCBzaW5jZSBpdCdzIG5vdCBpbnRyb2R1Y2luZwo+IHRoZSBsb29waG9sZSBpbiB0 aGUgZmlyc3QgcGxhY2UuCgpObyBkaXNhZ3JlZW1lbnQgaGVyZSwgbXkgY29uY2VybiB3YXMgYWJv dXQgaW50cm9kdWNpbmcgYSB3b3JrYXJvdW5kIGZvcgp0aGUgbGFjayBvZiBwcm9wZXIgbWVtb3J5 IGFjY291bnRpbmcuIEknZCBsaWtlIHRvIGF2b2lkIHRoZSB3b3JrYXJvdW5kLApidXQgaXQgZG9l c24ndCBtZWFuIG1lbW9yeSBhY2NvdW50aW5nIGhhcyB0byBiZSBpbXBsZW1lbnQgbm93LgoKPiBX ZSBoYWQgc29tZSBkaXNjdXNzaW9uIGFib3V0IHRoaXMgaW4gQ2hyb21lT1MgbG9uZyBhZ28gYW5k IHdlIHRob3VnaHQKPiBpdCB3b3VsZCBiZSByZWFsbHkgdXNlZnVsIGZvciBraWxsaW5nIGJyb3dz ZXIgdGFicyB3aXRoIGJpZyB2aWRlb3MsCj4gYnV0IG90aGVyd2lzZSB1c2luZyB2ZXJ5IGxpdHRs ZSByZWd1bGFyIG1lbW9yeSAoZS5nLiB2aWEgamF2YXNjcmlwdCkuCj4gCj4gT25lIGNoYWxsZW5n ZSB3aXRoIGFjY291bnRpbmcgVjRMMiBhbGxvY2F0aW9ucyBpcyBob3cgdG8gY291bnQgc2hhcmVk Cj4gRE1BLWJ1ZnMuIElmIG9uZSBwcm9jZXNzIGFsbG9jYXRlcyBhIFY0TDIgYnVmZmVyLCBleHBv cnRzIGl0IHRvCj4gRE1BLWJ1ZiBhbmQgdGhlbiBzZW5kcyBpdCB0byBhbm90aGVyIHByb2Nlc3Mg dGhhdCBrZWVwcyBpdCBhbGl2ZSwgYnV0Cj4gZnJlZXMgdGhlIFY0TDIgYnVmZmVyIChhbmQgZXZl biBjbG9zZXMgdGhlIERNQS1idWYgZmQpLCBzaG91bGQgdGhhdAo+IG1lbW9yeSBiZSBzdGlsbCBh Y2NvdW50ZWQgdG8gaXQgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBob2xkIGEKPiByZWZlcmVuY2Ug dG8gaXQgYW55bW9yZT8KCkkndmUgdGhvdWdodCBhYm91dCB0aGF0IHRvby4gSXQncyBhbiBhbm5v eWluZyBwcm9ibGVtLCBpdCBzaG91bGQKcHJvYmFibHkgYmUgZGlzY3Vzc2VkIHdpdGggbWVtb3J5 IG1hbmFnZW1lbnQgZGV2ZWxvcGVycy4KCj4gPiBOb3csIHRvIGJlIGZhaXIsIHRoZXJlIGFyZSBt YW55IHJlYXNvbnMgd2h5IGFsbG93aW5nIGFjY2VzcyB0byB2NEwyCj4gPiBkZXZpY2VzIHRvIHVu dHJ1c3RlZCBhcHBsaWNhdGlvbnMgaXMgYSBiYWQgaWRlYSwgYW5kIG1lbW9yeSBjb25zdW1wdGlv bgo+ID4gaXMgbGlrZWx5IG5vdCBldmVuIHRoZSB3b3JzdCBvbmUuIFN0aWxsLCBpcyB0aGlzIHNv bWV0aGluZyB3ZSB3YW50IHRvCj4gPiBmaXgsIG9yIGRvIHdlIHdhbnQgdG8gY29uc2lkZXIgVjRM MiB0byBiZSBwcml2aWxlZGdlZCBBUEkgb25seSA/IFJpZ2h0Cj4gPiBub3cgd2UgY2FuJ3QgZG8g c28sIGJ1dCB3aXRoIG1hbnkgTGludXggc3lzdGVtcyBtb3ZpbmcgdG93YXJkcyBwaXBld2lyZSwK PiA+IHdlIGNvdWxkIHBvc3NpYmx5IGhhdmUgYSBzeXN0ZW0gZGFlbW9uIGlzb2xhdGluZyB1bnRy dXN0ZWQgYXBwbGljYXRpb25zCj4gPiBmcm9tIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uIFdlIG1h eSB0aHVzIG5vdCBuZWVkIHRvIGZpeCB0aGlzIGluIHRoZQo+ID4gVjRMMiBBUEkuCgotLSAKUmVn YXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK