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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 2AA36CD6E57 for ; Tue, 2 Jun 2026 10:49:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7FC2110EEF6; Tue, 2 Jun 2026 10:49:26 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="lS6pPPUE"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 243A510EEF6 for ; Tue, 2 Jun 2026 10:49:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=ZhW43AK+oVim0AI5uSTOuikU5d8E/WwES5I7sSKdMBM=; b=lS6pPPUENYFIINrq6/oVLFqNMC 1xg9cYRwkcv3l+8paHoDUR/1T4+UwdSFAwTDvcaL6I2xoau9dgfceJx8pAJ7ggzo2pb0bpeG95TGH 6z8TR8ZSBlBhksL/uBNgwV6dr7CyLeS5q4UMjIUMRtqJd3gsk+vpKOjMqsxVgVCLoHw2OWvOopgVO 1rihMYV8ANbBoiY4SUyye8flbrDmq5hE/opX6XT2zBwYV8gynL98xqffz2Y2XLownQwX0Lf6aIdCx ZD0O3fu3Oy+tpwSmqGf9iFy71A0zNQPp3mWECos0sHlpbUI/YM9UdHwGUIondNSfdKQs2Osj4c1AK DENW+x2A==; Received: from [189.7.87.67] (helo=[192.168.0.2]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128) (Exim) id 1wUMgP-00Bf0I-S2; Tue, 02 Jun 2026 12:49:18 +0200 Message-ID: <44cbf6ec-3134-44d5-b37c-0c99ac55f678@igalia.com> Date: Tue, 2 Jun 2026 07:49:12 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/4] drm/v3d: Serialize jobs across queues when a perfmon is attached To: Iago Toral , Melissa Wen , Tvrtko Ursulin , David Airlie , Simona Vetter Cc: kernel-dev@igalia.com, dri-devel@lists.freedesktop.org References: <20260531-v3d-perfmon-lifetime-v2-0-60ed4485a203@igalia.com> <20260531-v3d-perfmon-lifetime-v2-3-60ed4485a203@igalia.com> <7a9d503de81b403585962f1c25dd0b506a6eb3f2.camel@igalia.com> From: =?UTF-8?Q?Ma=C3=ADra_Canal?= Content-Language: en-US Autocrypt: addr=mcanal@igalia.com; keydata= xsBNBGcCwywBCADgTji02Sv9zjHo26LXKdCaumcSWglfnJ93rwOCNkHfPIBll85LL9G0J7H8 /PmEL9y0LPo9/B3fhIpbD8VhSy9Sqz8qVl1oeqSe/rh3M+GceZbFUPpMSk5pNY9wr5raZ63d gJc1cs8XBhuj1EzeE8qbP6JAmsL+NMEmtkkNPfjhX14yqzHDVSqmAFEsh4Vmw6oaTMXvwQ40 SkFjtl3sr20y07cJMDe++tFet2fsfKqQNxwiGBZJsjEMO2T+mW7DuV2pKHr9aifWjABY5EPw G7qbrh+hXgfT+njAVg5+BcLz7w9Ju/7iwDMiIY1hx64Ogrpwykj9bXav35GKobicCAwHABEB AAHNIE1hw61yYSBDYW5hbCA8bWNhbmFsQGlnYWxpYS5jb20+wsCRBBMBCAA7FiEE+ORdfQEW dwcppnfRP/MOinaI+qoFAmcCwywCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ P/MOinaI+qoUBQgAqz2gzUP7K3EBI24+a5FwFlruQGtim85GAJZXToBtzsfGLLVUSCL3aF/5 O335Bh6ViSBgxmowIwVJlS/e+L95CkTGzIIMHgyUZfNefR2L3aZA6cgc9z8cfow62Wu8eXnq GM/+WWvrFQb/dBKKuohfBlpThqDWXxhozazCcJYYHradIuOM8zyMtCLDYwPW7Vqmewa+w994 7Lo4CgOhUXVI2jJSBq3sgHEPxiUBOGxvOt1YBg7H9C37BeZYZxFmU8vh7fbOsvhx7Aqu5xV7 FG+1ZMfDkv+PixCuGtR5yPPaqU2XdjDC/9mlRWWQTPzg74RLEw5sz/tIHQPPm6ROCACFls7A TQRnAsMsAQgAxTU8dnqzK6vgODTCW2A6SAzcvKztxae4YjRwN1SuGhJR2isJgQHoOH6oCItW Xc1CGAWnci6doh1DJvbbB7uvkQlbeNxeIz0OzHSiB+pb1ssuT31Hz6QZFbX4q+crregPIhr+ 0xeDi6Mtu+paYprI7USGFFjDUvJUf36kK0yuF2XUOBlF0beCQ7Jhc+UoI9Akmvl4sHUrZJzX LMeajARnSBXTcig6h6/NFVkr1mi1uuZfIRNCkxCE8QRYebZLSWxBVr3h7dtOUkq2CzL2kRCK T2rKkmYrvBJTqSvfK3Ba7QrDg3szEe+fENpL3gHtH6h/XQF92EOulm5S5o0I+ceREwARAQAB wsB2BBgBCAAgFiEE+ORdfQEWdwcppnfRP/MOinaI+qoFAmcCwywCGwwACgkQP/MOinaI+qpI zQf+NAcNDBXWHGA3lgvYvOU31+ik9bb30xZ7IqK9MIi6TpZqL7cxNwZ+FAK2GbUWhy+/gPkX it2gCAJsjo/QEKJi7Zh8IgHN+jfim942QZOkU+p/YEcvqBvXa0zqW0sYfyAxkrf/OZfTnNNE Tr+uBKNaQGO2vkn5AX5l8zMl9LCH3/Ieaboni35qEhoD/aM0Kpf93PhCvJGbD4n1DnRhrxm1 uEdQ6HUjWghEjC+Jh9xUvJco2tUTepw4OwuPxOvtuPTUa1kgixYyG1Jck/67reJzMigeuYFt raV3P8t/6cmtawVjurhnCDuURyhUrjpRhgFp+lW8OGr6pepHol/WFIOQEg== In-Reply-To: <7a9d503de81b403585962f1c25dd0b506a6eb3f2.camel@igalia.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgSWFnbywKCk9uIDAyLzA2LzI2IDA0OjM1LCBJYWdvIFRvcmFsIHdyb3RlOgo+IEhpIE1hw61y YSwgdGhpcyBwYWN0Y2ggbG9va3MgZ29vZCB0byBtZSBidXQgSSBhbSB3b25kZXJpbmcgaWYgd2Ug c2hvdWxkCj4gZG8gYW55dGhpbmcgdG8gY2xlYW4gdXAgdGhlIHBlcmZtb24gc3RhdGUgd2hlbiBh IGdwdSByZXNldCBoYXBwZW5zOgo+IGkuZS4gd2hhdCB3b3VsZCBoYXBwZW4gaWYgYSBwZXJmbW9u IGpvYiByZXNldHM/IFdvdWxkIHdlIGNvbnRpbnVlIHRvCj4gc2NoZWR1bGUgYWZ0ZXItcmVzZXQg am9icyB0byB3YWl0IG9uIHRoZSBmZW5jZSBvZiB0aGUgcmVzZXQgam9iPwoKSWYgdGhlIGpvYiBy ZXNldHMsIHRoZSBkZXNpZ24gYXJvdW5kIHRoZSBEUk0gc2NoZWR1bGVyIHdpbGwgcHJvdGVjdCB1 cy4KClRoZSBEUk0gc2NoZWR1bGVyIGd1YXJhbnRlZXMgdGhhdCBhIGZpbmlzaGVkIGZlbmNlIGlz IGFsd2F5cyBzaWduYWxlZApldmVudHVhbGx5LiBPbiBhIHJlc2V0LCBkcm1fc2NoZWRfc3RhcnQo KSBzaWduYWxzIHRoZSBwZW5kaW5nIGpvYnMnCmZpbmlzaGVkIGZlbmNlcyAod2l0aCAtRUNBTkNF TEVEIGZvciB0aGUgZ3VpbHR5IGpvYikuIFNvIGlmIGEKcGVyZm1vbi1jYXJyeWluZyBqb2IgaXMg dGhlIG9uZSB0aGF0IHRpbWVzIG91dCwgdGhlIGRvbmVfZmVuY2Ugd2UKc3RvcmVkIGZvciBzZXJp YWxpemF0aW9uIHN0aWxsIGdldHMgc2lnbmFsZWQgd2hlbiByZXN1Ym1pdHRlZCAoY2hlY2sgdGhl CmZpcnN0IGlmLWNsYXVzZSBpbiB0aGUgcnVuX2pvYigpIGNhbGxiYWNrcykuCgpkcm1fc2NoZWRf am9iX2FkZF9kZXBlbmRlbmN5KCkgcmVsZWFzZXMgdGhlIGRlcGVuZGVudCBqb2IgYXMgc29vbiBh cyB0aGUKZmVuY2Ugc2lnbmFscywgcmVnYXJkbGVzcyBvZiBlcnJvciwgc28gYW55IGpvYiBzdWJt aXR0ZWQgYmVoaW5kIHRoZQpyZXNldCBwZXJmbW9uIGpvYiBpcyByZWxlYXNlZCBhbmQgcnVucy4g VGhlIHNlcmlhbGl6YXRpb24gd2luZG93IHNpbXBseQpjbG9zZXMgd2hlbiB0aGUgam9iIGRpZXMu CgpCZXN0IHJlZ2FyZHMsCi0gTWHDrXJhCgo+IAo+IElhZ28KPiAKPiBFbCBkb20sIDMxLTA1LTIw MjYgYSBsYXMgMTc6MTggLTAzMDAsIE1hw61yYSBDYW5hbCBlc2NyaWJpw7M6Cj4+IEEgbm9uLWds b2JhbCBwZXJmbW9uIGlzIG1lYW50IHRvIGNvdW50IGV2ZW50cyBnZW5lcmF0ZWQgYnkgYSBzcGVj aWZpYwo+PiBzdWJtaXNzaW9uLCBidXQgdGhlIHNjaGVkdWxlciBjYW4gcnVuIGpvYnMgZnJvbSBk aWZmZXJlbnQgcXVldWVzCj4+IGNvbmN1cnJlbnRseSBvbiB0aGUgc2FtZSBWM0QgY29yZS4gV2l0 aG91dCBleHBsaWNpdCBzZXJpYWxpemF0aW9uLCBhbgo+PiB1bnJlbGF0ZWQgam9iIHJ1bm5pbmcg aW4gcGFyYWxsZWwgd2l0aCBhIHBlcmZtb24tY2Fycnlpbmcgam9iCj4+IHBvbGx1dGVzCj4+IHRo ZSBjb3VudGVycyBhbmQgZ2VuZXJhdGVzIHVudXNhYmxlIHJlc3VsdHMuCj4+Cj4+IFRvIGFkZHJl c3Mgc3VjaCBpc3N1ZSwgd2UgbXVzdCBlbmZvcmNlIGNyb3NzLXF1ZXVlIHNlcmlhbGl6YXRpb24g d2hlbgo+PiB3ZQo+PiBkZXRlY3QgYSBwZXJmbW9uLWNhcnJ5aW5nIHN1Ym1pc3Npb24uIEl0J3Mg cG9zc2libGUgdG8gaW1wbGVtZW50Cj4+IHNlcmlhbGl6YXRpb24gYnkgZW5mb3JjaW5nIHR3byBy dWxlczoKPj4KPj4gIMKgIDEuIEEgam9iIHRoYXQgY2FycmllcyBhIG5vbi1nbG9iYWwgcGVyZm1v biBtdXN0IHdhaXQgZm9yIGV2ZXJ5IGpvYgo+PiAgwqDCoMKgIGN1cnJlbnRseSBpbi1mbGlnaHQg YWNyb3NzIGFsbCBIVyBxdWV1ZXMgdG8gZmluaXNoLgo+Pgo+PiAgwqAgMi4gV2hpbGUgYSBwZXJm bW9uLWNhcnJ5aW5nIGpvYiBpcyBzdGlsbCBpbi1mbGlnaHQsIGFsbAo+PiBzdWJzZXF1ZW50bHkK Pj4gIMKgwqDCoCBzdWJtaXR0ZWQgam9icyBtdXN0IHdhaXQgZm9yIGl0Lgo+Pgo+PiBOb3RlIHRo YXQgc2VyaWFsaXphdGlvbiBpcyBub3QgbmVlZGVkIGluIHRoZSBnbG9iYWwgcGVyZm1vbiBjYXNl LCBhcwo+PiB0aGUKPj4gZ2xvYmFsIHBlcmZtb24gdHJhY2tzIGFjdGl2aXR5IGZyb20gYWxsIGpv YnMsIHNvIGNvbmN1cnJlbmN5IGlzCj4+IGRlc2lyYWJsZS4KPj4KPj4gVGhlcmVmb3JlLCBjaGVj ayBpZiBzZXJpYWxpemF0aW9uIGlzIG5lZWRlZCBkdXJpbmcgam9iIHN1Ym1pc3Npb24gYW5kCj4+ IGlmCj4+IHNvLCBhdHRhY2ggZmVuY2UgZGVwZW5kZW5jZXMgdG8gZW5mb3JjZSBjcm9zcy1xdWV1 ZSBzZXJpYWxpemF0aW9uLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYcOtcmEgQ2FuYWwgPG1jYW5h bEBpZ2FsaWEuY29tPgo+PiAtLS0KPj4gIMKgZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmjC oMKgwqDCoCB8IDM1ICsrKysrKysrKysrKysrKysrKy0tLS0KPj4gIMKgZHJpdmVycy9ncHUvZHJt L3YzZC92M2RfZ2VtLmPCoMKgwqDCoCB8wqAgMyArKwo+PiAgwqBkcml2ZXJzL2dwdS9kcm0vdjNk L3YzZF9wZXJmbW9uLmMgfMKgIDYgKysrKwo+PiAgwqBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9z dWJtaXQuY8KgIHwgNjMKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4+ICDCoDQgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAo+PiBiL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCj4+IGluZGV4IDUxNDg2YWY2OGNmNC4uY2RmNDky NmQ1MWYyIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAo+PiBAQCAtNzQsMTEgKzc0LDEzIEBA IHN0cnVjdCB2M2RfcXVldWVfc3RhdGUgewo+PiAgwqAJc3BpbmxvY2tfdCBxdWV1ZV9sb2NrOwo+ PiAgwqB9Owo+PiAgIAo+PiAtLyogUGVyZm9ybWFuY2UgbW9uaXRvciBvYmplY3QuIFRoZSBwZXJm b3JtIGxpZmV0aW1lIGlzIGNvbnRyb2xsZWQgYnkKPj4gdXNlcnNwYWNlCj4+IC0gKiB1c2luZyBw ZXJmbW9uIHJlbGF0ZWQgaW9jdGxzLiBBIHBlcmZtb24gY2FuIGJlIGF0dGFjaGVkIHRvIGEKPj4g c3VibWl0X2NsCj4+IC0gKiByZXF1ZXN0LCBhbmQgd2hlbiB0aGlzIGlzIHRoZSBjYXNlLCBIVyBw ZXJmIGNvdW50ZXJzIHdpbGwgYmUKPj4gYWN0aXZhdGVkIGp1c3QKPj4gLSAqIGJlZm9yZSB0aGUg c3VibWl0X2NsIGlzIHN1Ym1pdHRlZCB0byB0aGUgR1BVIGFuZCBkaXNhYmxlZCB3aGVuCj4+IHRo ZSBqb2IgaXMKPj4gLSAqIGRvbmUuIFRoaXMgd2F5LCBvbmx5IGV2ZW50cyByZWxhdGVkIHRvIGEg c3BlY2lmaWMgam9iIHdpbGwgYmUKPj4gY291bnRlZC4KPj4gKy8qIFBlcmZvcm1hbmNlIG1vbml0 b3Igb2JqZWN0Cj4+ICsgKgo+PiArICogVGhlIHBlcmZvcm1hbmNlIG1vbml0b3IgKHBlcmZtb24p IGxpZmV0aW1lIGlzIGNvbnRyb2xsZWQgYnkKPj4gdXNlcnNwYWNlIHVzaW5nCj4+ICsgKiBwZXJm bW9uIHJlbGF0ZWQgaW9jdGxzLiBBIHBlcmZtb24gY2FuIGJlIGF0dGFjaGVkIHRvIGEgQ0wgb3Ig Q1NECj4+IHN1Ym1pc3Npb24KPj4gKyAqIHJlcXVlc3QsIGFuZCB3aGVuIGl0IGlzLCBIVyBwZXJm b3JtYW5jZSBjb3VudGVycyB3aWxsIGJlCj4+IGFjdGl2YXRlZCBqdXN0Cj4+ICsgKiBiZWZvcmUg dGhlIGpvYiBpcyBzdWJtaXR0ZWQgdG8gdGhlIEdQVSBhbmQgZGlzYWJsZWQgd2hlbiB0aGUgam9i Cj4+IGlzIGRvbmUuCj4+ICsgKiBUaGlzIHdheSwgb25seSBldmVudHMgcmVsYXRlZCB0byBhIHNw ZWNpZmljIHN1Ym1pc3Npb24gd2lsbCBiZQo+PiBjb3VudGVkLgo+PiAgwqAgKi8KPj4gIMKgc3Ry dWN0IHYzZF9wZXJmbW9uIHsKPj4gIMKgCS8qIFRyYWNrcyB0aGUgbnVtYmVyIG9mIHVzZXJzIG9m IHRoZSBwZXJmbW9uLCB3aGVuIHRoaXMKPj4gY291bnRlciByZWFjaGVzCj4+IEBAIC0xNjcsMTMg KzE2OSwzMSBAQCBzdHJ1Y3QgdjNkX2RldiB7Cj4+ICAgCj4+ICDCoAlzdHJ1Y3QgdjNkX3F1ZXVl X3N0YXRlIHF1ZXVlW1YzRF9NQVhfUVVFVUVTXTsKPj4gICAKPj4gLQkvKiBUcmFja3MgdGhlIHBl cmZvcm1hbmNlIG1vbml0b3Igc3RhdGUuICovCj4+ICsJLyoKPj4gKwkgKiBUcmFja3MgdGhlIHBl cmZvcm1hbmNlIG1vbml0b3Igc3RhdGUgYW5kIGNvbnNpc3RlbmN5Lgo+PiArCSAqCj4+ICsJICog V2hlbiBhIG5vbi1nbG9iYWwgcGVyZm1vbiBpcyBhdHRhY2hlZCB0byBhIGpvYiwgdGhlCj4+IHNj aGVkdWxlciBtdXN0Cj4+ICsJICogbm90IHJ1biBhbnkgb3RoZXIgam9iIG9uIHRoZSBIVyBjb25j dXJyZW50bHkgKG90aGVyd2lzZSwKPj4gdGhlCj4+ICsJICogY291bnRlcnMgd291bGQgYmUgcG9s bHV0ZWQgYnkgdW5yZWxhdGVkIHdvcmspLgo+PiArCSAqLwo+PiAgwqAJc3RydWN0IHsKPj4gIMKg CQkvKiBQcm90ZWN0cyBAYWN0aXZlLiAqLwo+PiAgwqAJCXNwaW5sb2NrX3QgbG9jazsKPj4gICAK Pj4gIMKgCQkvKiBQZXJmbW9uIGN1cnJlbnRseSBwcm9ncmFtbWVkIGluIEhXIChvciBOVUxMIGlm Cj4+IG5vbmUpLiAqLwo+PiAgwqAJCXN0cnVjdCB2M2RfcGVyZm1vbiAqYWN0aXZlOwo+PiArCj4+ ICsJCS8qIEZpbmlzaGVkIGZlbmNlIG9mIHRoZSBtb3N0IHJlY2VudGx5IHN1Ym1pdHRlZCBqb2IK Pj4gdGhhdAo+PiArCQkgKiBvcGVuZWQgYSBzZXJpYWxpemF0aW9uIHdpbmRvdyAoaS5lLiBhIGpv YiB3aXRoIGEKPj4gbm9uLWdsb2JhbAo+PiArCQkgKiBwZXJmbW9uIGF0dGFjaGVkKS4KPj4gKwkJ ICovCj4+ICsJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+PiArCj4+ICsJCS8qIEZpbmlzaGVk IGZlbmNlIG9mIHRoZSBtb3N0IHJlY2VudGx5IHN1Ym1pdHRlZCBqb2IKPj4gb24gZWFjaCBIVwo+ PiArCQkgKiBxdWV1ZS4gVXNlZCBzbyB0aGF0IGEgbmV3IHBlcmZtb24tY2Fycnlpbmcgam9iCj4+ IGNhbiBkZXBlbmQgb24KPj4gKwkJICogZXZlcnkgam9iIGN1cnJlbnRseSBpbi1mbGlnaHQgYWNy b3NzIGFsbCBxdWV1ZXMuCj4+ICsJCSAqLwo+PiArCQlzdHJ1Y3QgZG1hX2ZlbmNlICpsYXN0X2h3 X2ZlbmNlW1YzRF9NQVhfUVVFVUVTXTsKPj4gIMKgCX0gcGVyZm1vbl9zdGF0ZTsKPj4gICAKPj4g IMKgCS8qIFByb3RlY3RzIGJvX3N0YXRzICovCj4+IEBAIC0zMTksNiArMzM5LDkgQEAgc3RydWN0 IHYzZF9qb2Igewo+PiAgIAo+PiAgwqAJc3RydWN0IHYzZF9kZXYgKnYzZDsKPj4gICAKPj4gKwkv KiBUaGUgcXVldWUgdGhhdCB0aGUgam9iIHdhcyBzdWJtaXR0ZWQgb24uICovCj4+ICsJZW51bSB2 M2RfcXVldWUgcXVldWU7Cj4+ICsKPj4gIMKgCS8qIFRoaXMgaXMgdGhlIGFycmF5IG9mIEJPcyB0 aGF0IHdlcmUgbG9va2VkIHVwIGF0IHRoZSBzdGFydAo+PiAgwqAJICogb2Ygc3VibWlzc2lvbi4K Pj4gIMKgCSAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMK Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwo+PiBpbmRleCA5NDg3YWI3YWNkMDMu LjBiNDE1NDg2ZjViNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2Vt LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMKPj4gQEAgLTM2Myw4ICsz NjMsMTEgQEAgdjNkX2dlbV9kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICDCoAlm b3IgKHEgPSAwOyBxIDwgVjNEX01BWF9RVUVVRVM7IHErKykgewo+PiAgwqAJCVdBUk5fT04odjNk LT5xdWV1ZVtxXS5hY3RpdmVfam9iKTsKPj4gIMKgCQl2M2Rfc3RhdHNfcHV0KHYzZC0+cXVldWVb cV0uc3RhdHMpOwo+PiArCQlkbWFfZmVuY2VfcHV0KHYzZC0+cGVyZm1vbl9zdGF0ZS5sYXN0X2h3 X2ZlbmNlW3FdKTsKPj4gIMKgCX0KPj4gICAKPj4gKwlkbWFfZmVuY2VfcHV0KHYzZC0+cGVyZm1v bl9zdGF0ZS5mZW5jZSk7Cj4+ICsKPj4gIMKgCWRybV9tbV90YWtlZG93bigmdjNkLT5tbSk7Cj4+ ICAgCj4+ICDCoAlkbWFfZnJlZV9jb2hlcmVudCh2M2QtPmRybS5kZXYsIDQwOTYgKiAxMDI0LCAo dm9pZCAqKXYzZC0KPj4+IHB0LAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfcGVyZm1vbi5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfcGVyZm1vbi5jCj4+IGlu ZGV4IDNhZDBmMDIyNzUzYy4uMDdkYWI3ZmIzMDYwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdjNkL3YzZF9wZXJmbW9uLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rf cGVyZm1vbi5jCj4+IEBAIC0yNzUsNiArMjc1LDEyIEBAIHZvaWQgdjNkX3BlcmZtb25fc3RhcnQo c3RydWN0IHYzZF9kZXYgKnYzZCwKPj4gc3RydWN0IHYzZF9wZXJmbW9uICpwZXJmbW9uKQo+PiAg wqAJaWYgKCFwZXJmbW9uIHx8IHYzZC0+Z2xvYmFsX3BlcmZtb24pCj4+ICDCoAkJcmV0dXJuOwo+ PiAgIAo+PiArCS8qIENyb3NzLXF1ZXVlIHNlcmlhbGl6YXRpb24gc2hvdWxkIGhhdmUgZHJhaW5l ZCBhbnkKPj4gcHJldmlvdXMgcGVyZm1vbgo+PiArCSAqIGpvYiBiZWZvcmUgdGhpcyBvbmUgcnVu cy4KPj4gKwkgKi8KPj4gKwlpZiAoV0FSTl9PTl9PTkNFKHYzZC0+cGVyZm1vbl9zdGF0ZS5hY3Rp dmUpKQo+PiArCQlyZXR1cm47Cj4+ICsKPj4gIMKgCWlmICghcG1fcnVudGltZV9nZXRfaWZfYWN0 aXZlKHYzZC0+ZHJtLmRldikpCj4+ICDCoAkJcmV0dXJuOwo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc3VibWl0LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vdjNk L3YzZF9zdWJtaXQuYwo+PiBpbmRleCA0YzUyNmFhZmM0ZTAuLjQ2ZmM4OGJhY2M5NSAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc3VibWl0LmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3YzZC92M2Rfc3VibWl0LmMKPj4gQEAgLTIzNCw2ICsyMzQsNyBAQCB2M2Rfc3Vi bWl0X2FkZF9qb2Ioc3RydWN0IHYzZF9zdWJtaXQgKnN1Ym1pdCwKPj4gdm9pZCAqKmNvbnRhaW5l ciwgc2l6ZV90IHNpemUsCj4+ICDCoAlqb2ItPnYzZCA9IHYzZDsKPj4gIMKgCWpvYi0+ZnJlZSA9 IGZyZWU7Cj4+ICDCoAlqb2ItPmZpbGVfcHJpdiA9IHYzZF9wcml2Owo+PiArCWpvYi0+cXVldWUg PSBxdWV1ZTsKPj4gICAKPj4gIMKgCXJldCA9IGRybV9zY2hlZF9qb2JfaW5pdCgmam9iLT5iYXNl LCAmdjNkX3ByaXYtCj4+PiBzY2hlZF9lbnRpdHlbcXVldWVdLAo+PiAgwqAJCQkJIDEsIHYzZF9w cml2LCBzdWJtaXQtPmZpbGVfcHJpdi0KPj4+IGNsaWVudF9pZCk7Cj4+IEBAIC0yOTMsNiArMjk0 LDYyIEBAIHYzZF9hdHRhY2hfcGVyZm1vbl90b19qb2JzKHN0cnVjdCB2M2Rfc3VibWl0Cj4+ICpz dWJtaXQsIHUzMiBwZXJmbW9uX2lkKQo+PiAgwqAJcmV0dXJuIDA7Cj4+ICDCoH0KPj4gICAKPj4g Ky8qCj4+ICsgKiBQcmVwYXJlIGZlbmNlcyB0byBlbmZvcmNlIGpvYiBzZXJpYWxpemF0aW9uIHdo ZW4gYSBwZXJmbW9uIGlzCj4+IGFjdGl2ZS4gQSBqb2IKPj4gKyAqIHRoYXQgY2FycmllcyBhIG5v bi1nbG9iYWwgcGVyZm1vbiBtdXN0IHdhaXQgZm9yIGV2ZXJ5IGpvYgo+PiBjdXJyZW50bHkgaW4t ZmxpZ2h0Cj4+ICsgKiBhY3Jvc3MgYWxsIEhXIHF1ZXVlcyB0byBmaW5pc2gsIG90aGVyd2lzZSBj b25jdXJyZW50IHVucmVsYXRlZAo+PiB3b3JrIG9uIHRoZQo+PiArICogc2FtZSBjb3JlIHdvdWxk IHBvbGx1dGUgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBTeW1tZXRyaWNhbGx5LAo+PiB3aGls ZSBzdWNoIGEKPj4gKyAqIGpvYiBpcyBzdGlsbCBpbi1mbGlnaHQsIGFsbCBzdWJzZXF1ZW50bHkg c3VibWl0dGVkIGpvYnMgbXVzdCB3YWl0Cj4+IGZvciBpdC4KPj4gKyAqCj4+ICsgKiBXZSBkb24n dCBzZXJpYWxpemUgdGhlIGpvYnMgd2hlbiB1c2luZyBhIGdsb2JhbCBwZXJmbW9uIGFzIGl0J3MK Pj4gZXhwZWN0ZWQgdG8KPj4gKyAqIHRyYWNrIGNvbmN1cnJlbnQgYWN0aXZpdHkgZnJvbSBhbGwg am9icy4KPj4gKyAqLwo+PiArc3RhdGljIGludAo+PiArdjNkX3NlcmlhbGl6ZV9mb3JfcGVyZm1v bihzdHJ1Y3QgdjNkX2pvYiAqam9iKQo+PiArewo+PiArCXN0cnVjdCB2M2RfZGV2ICp2M2QgPSBq b2ItPnYzZDsKPj4gKwlib29sIGlzX2dsb2JhbF9wZXJmbW9uOwo+PiArCWludCByZXQ7Cj4+ICsK Pj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2M2QtPnNjaGVkX2xvY2spOwo+PiArCj4+ICsJc2Nv cGVkX2d1YXJkKHNwaW5sb2NrX2lycXNhdmUsICZ2M2QtPnBlcmZtb25fc3RhdGUubG9jaykKPj4g KwkJaXNfZ2xvYmFsX3BlcmZtb24gPSAhIXYzZC0+Z2xvYmFsX3BlcmZtb247Cj4+ICsKPj4gKwlp ZiAoaXNfZ2xvYmFsX3BlcmZtb24pCj4+ICsJCWdvdG8gcHVibGlzaDsKPj4gKwo+PiArCWlmIChq b2ItPnBlcmZtb24pIHsKPj4gKwkJZm9yIChlbnVtIHYzZF9xdWV1ZSBxID0gMDsgcSA8IFYzRF9N QVhfUVVFVUVTOyBxKyspCj4+IHsKPj4gKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSB2M2QtCj4+ PiBwZXJmbW9uX3N0YXRlLmxhc3RfaHdfZmVuY2VbcV07Cj4+ICsKPj4gKwkJCWlmICghZiB8fCBk bWFfZmVuY2VfaXNfc2lnbmFsZWQoZikpCj4+ICsJCQkJY29udGludWU7Cj4+ICsKPj4gKwkJCXJl dCA9IGRybV9zY2hlZF9qb2JfYWRkX2RlcGVuZGVuY3koJmpvYi0KPj4+IGJhc2UsIGRtYV9mZW5j ZV9nZXQoZikpOwo+PiArCQkJaWYgKHJldCkKPj4gKwkJCQlyZXR1cm4gcmV0Owo+PiArCQl9Cj4+ ICsJfSBlbHNlIGlmICh2M2QtPnBlcmZtb25fc3RhdGUuZmVuY2UgJiYKPj4gKwkJwqDCoCAhZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKHYzZC0+cGVyZm1vbl9zdGF0ZS5mZW5jZSkpCj4+IHsKPj4gKwkJ cmV0ID0gZHJtX3NjaGVkX2pvYl9hZGRfZGVwZW5kZW5jeSgmam9iLT5iYXNlLAo+PiArCQkJCQkJ Cj4+IGRtYV9mZW5jZV9nZXQodjNkLT5wZXJmbW9uX3N0YXRlLmZlbmNlKSk7Cj4+ICsJCWlmIChy ZXQpCj4+ICsJCQlyZXR1cm4gcmV0Owo+PiArCX0KPj4gKwo+PiArcHVibGlzaDoKPj4gKwlkbWFf ZmVuY2VfcHV0KHYzZC0+cGVyZm1vbl9zdGF0ZS5sYXN0X2h3X2ZlbmNlW2pvYi0+cXVldWVdKTsK Pj4gKwl2M2QtPnBlcmZtb25fc3RhdGUubGFzdF9od19mZW5jZVtqb2ItPnF1ZXVlXSA9Cj4+IGRt YV9mZW5jZV9nZXQoam9iLT5kb25lX2ZlbmNlKTsKPj4gKwo+PiArCWlmIChqb2ItPnBlcmZtb24g JiYgIWlzX2dsb2JhbF9wZXJmbW9uKSB7Cj4+ICsJCWRtYV9mZW5jZV9wdXQodjNkLT5wZXJmbW9u X3N0YXRlLmZlbmNlKTsKPj4gKwkJdjNkLT5wZXJmbW9uX3N0YXRlLmZlbmNlID0gZG1hX2ZlbmNl X2dldChqb2ItCj4+PiBkb25lX2ZlbmNlKTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4g K30KPj4gKwo+PiAgwqBzdGF0aWMgdm9pZAo+PiAgwqB2M2Rfc3VibWl0X2F0dGFjaF9vYmplY3Rf ZmVuY2VzKHN0cnVjdCB2M2Rfc3VibWl0ICpzdWJtaXQpCj4+ICDCoHsKPj4gQEAgLTMzNyw2ICsz OTQsMTIgQEAgdjNkX3N1Ym1pdF9qb2JzKHN0cnVjdCB2M2Rfc3VibWl0ICpzdWJtaXQpCj4+ICDC oAkJCWdvdG8gZXJyOwo+PiAgwqAJfQo+PiAgIAo+PiArCWZvciAoaW50IGkgPSAwOyBpIDwgc3Vi bWl0LT5qb2JfY291bnQ7IGkrKykgewo+PiArCQlyZXQgPSB2M2Rfc2VyaWFsaXplX2Zvcl9wZXJm bW9uKHN1Ym1pdC0+am9ic1tpXSk7Cj4+ICsJCWlmIChyZXQpCj4+ICsJCQlnb3RvIGVycjsKPj4g Kwl9Cj4+ICsKPj4gIMKgCWZvciAoaW50IGkgPSAwOyBpIDwgc3VibWl0LT5qb2JfY291bnQ7IGkr KykKPj4gIMKgCQlkcm1fc2NoZWRfZW50aXR5X3B1c2hfam9iKCZzdWJtaXQtPmpvYnNbaV0tPmJh c2UpOwo+PiAgIAo+Pgo+IAoK