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 X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C812C07E96 for ; Tue, 6 Jul 2021 19:33:34 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0779661C42 for ; Tue, 6 Jul 2021 19:33:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0779661C42 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 879BA89857; Tue, 6 Jul 2021 19:33:33 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id BAB9589857; Tue, 6 Jul 2021 19:33:32 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10037"; a="188862317" X-IronPort-AV: E=Sophos;i="5.83,329,1616482800"; d="scan'208";a="188862317" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2021 12:33:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,329,1616482800"; d="scan'208";a="647502363" Received: from irvmail001.ir.intel.com ([10.43.11.63]) by fmsmga005.fm.intel.com with ESMTP; 06 Jul 2021 12:33:24 -0700 Received: from [10.213.14.241] (mwajdecz-MOBL.ger.corp.intel.com [10.213.14.241]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id 166JXNba005337; Tue, 6 Jul 2021 20:33:23 +0100 To: John Harrison , Matthew Brost , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20210701171550.49353-1-matthew.brost@intel.com> <20210701171550.49353-7-matthew.brost@intel.com> <3147114d-4b4b-1a42-c40b-8d8be870e633@intel.com> From: Michal Wajdeczko Message-ID: Date: Tue, 6 Jul 2021 21:33:23 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 6/7] drm/i915/guc: Optimize CTB writes and reads X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiAwNi4wNy4yMDIxIDIxOjE5LCBKb2huIEhhcnJpc29uIHdyb3RlOgo+IE9uIDcvNi8yMDIx IDEyOjEyLCBNaWNoYWwgV2FqZGVjemtvIHdyb3RlOgo+PiBPbiAwNi4wNy4yMDIxIDIxOjAwLCBK b2huIEhhcnJpc29uIHdyb3RlOgo+Pj4gT24gNy8xLzIwMjEgMTA6MTUsIE1hdHRoZXcgQnJvc3Qg d3JvdGU6Cj4+Pj4gQ1RCIHdyaXRlcyBhcmUgbm93IGluIHRoZSBwYXRoIG9mIGNvbW1hbmQgc3Vi bWlzc2lvbiBhbmQgc2hvdWxkIGJlCj4+Pj4gb3B0aW1pemVkIGZvciBwZXJmb3JtYW5jZS4gUmF0 aGVyIHRoYW4gcmVhZGluZyBDVEIgZGVzY3JpcHRvciB2YWx1ZXMKPj4+PiAoZS5nLiBoZWFkLCB0 YWlsKSB3aGljaCBjb3VsZCByZXN1bHQgaW4gYWNjZXNzZXMgYWNyb3NzIHRoZSBQQ0llIGJ1cywK Pj4+PiBzdG9yZSBzaGFkb3cgbG9jYWwgY29waWVzIGFuZCBvbmx5IHJlYWQvd3JpdGUgdGhlIGRl c2NyaXB0b3IgdmFsdWVzCj4+Pj4gd2hlbgo+Pj4+IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBBbHNv IHN0b3JlIHRoZSBjdXJyZW50IHNwYWNlIGluIHRoZSBlYWNoIGNoYW5uZWwKPj4+PiBsb2NhbGx5 Lgo+Pj4+Cj4+Pj4gdjI6Cj4+Pj4gwqDCoCAoTWljaGVsKQo+Pj4+IMKgwqDCoCAtIEFkZCBhZGRp dGlvbmFsIHNhbml0eSBjaGVja3MgZm9yIGhlYWQgLyB0YWlsIHBvaW50ZXJzCj4+Pj4gwqDCoMKg IC0gVXNlIEdVQ19DVEJfSERSX0xFTiByYXRoZXIgdGhhbiBtYWdpYyAxCj4+Pj4KPj4+PiBTaWdu ZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pj4+ IFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgo+ Pj4+IC0tLQo+Pj4+IMKgwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0 LmMgfCA4OAo+Pj4+ICsrKysrKysrKysrKysrKy0tLS0tLS0tCj4+Pj4gwqDCoCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaCB8wqAgNiArKwo+Pj4+IMKgwqAgMiBmaWxl cyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuYwo+Pj4+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmMKPj4+PiBpbmRleCBh OWNiN2I2MDg1MjAuLjViOGI0ZmY2MDllMiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCj4+Pj4gQEAgLTEzMCw2ICsxMzAsMTAgQEAgc3RhdGlj IHZvaWQgZ3VjX2N0X2J1ZmZlcl9kZXNjX2luaXQoc3RydWN0Cj4+Pj4gZ3VjX2N0X2J1ZmZlcl9k ZXNjICpkZXNjKQo+Pj4+IMKgwqAgc3RhdGljIHZvaWQgZ3VjX2N0X2J1ZmZlcl9yZXNldChzdHJ1 Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiKQo+Pj4+IMKgwqAgewo+Pj4+IMKgwqDCoMKgwqDC oCBjdGItPmJyb2tlbiA9IGZhbHNlOwo+Pj4+ICvCoMKgwqAgY3RiLT50YWlsID0gMDsKPj4+PiAr wqDCoMKgIGN0Yi0+aGVhZCA9IDA7Cj4+Pj4gK8KgwqDCoCBjdGItPnNwYWNlID0gQ0lSQ19TUEFD RShjdGItPnRhaWwsIGN0Yi0+aGVhZCwgY3RiLT5zaXplKTsKPj4+PiArCj4+Pj4gwqDCoMKgwqDC oMKgIGd1Y19jdF9idWZmZXJfZGVzY19pbml0KGN0Yi0+ZGVzYyk7Cj4+Pj4gwqDCoCB9Cj4+Pj4g wqDCoCBAQCAtMzgzLDEwICszODcsOCBAQCBzdGF0aWMgaW50IGN0X3dyaXRlKHN0cnVjdCBpbnRl bF9ndWNfY3QgKmN0LAo+Pj4+IMKgwqAgewo+Pj4+IMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxf Z3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0LT5jdGJzLnNlbmQ7Cj4+Pj4gwqDCoMKgwqDCoMKgIHN0 cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4+Pj4gLcKgwqDCoCB1 MzIgaGVhZCA9IGRlc2MtPmhlYWQ7Cj4+Pj4gLcKgwqDCoCB1MzIgdGFpbCA9IGRlc2MtPnRhaWw7 Cj4+Pj4gK8KgwqDCoCB1MzIgdGFpbCA9IGN0Yi0+dGFpbDsKPj4+PiDCoMKgwqDCoMKgwqAgdTMy IHNpemUgPSBjdGItPnNpemU7Cj4+Pj4gLcKgwqDCoCB1MzIgdXNlZDsKPj4+PiDCoMKgwqDCoMKg wqAgdTMyIGhlYWRlcjsKPj4+PiDCoMKgwqDCoMKgwqAgdTMyIGh4ZzsKPj4+PiDCoMKgwqDCoMKg wqAgdTMyICpjbWRzID0gY3RiLT5jbWRzOwo+Pj4+IEBAIC0zOTUsMjUgKzM5NywyMiBAQCBzdGF0 aWMgaW50IGN0X3dyaXRlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAo+Pj4+IMKgwqDCoMKgwqDC oCBpZiAodW5saWtlbHkoZGVzYy0+c3RhdHVzKSkKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn b3RvIGNvcnJ1cHRlZDsKPj4+PiDCoMKgIC3CoMKgwqAgaWYgKHVubGlrZWx5KCh0YWlsIHwgaGVh ZCkgPj0gc2l6ZSkpIHsKPj4+PiArwqDCoMKgIEdFTV9CVUdfT04odGFpbCA+IHNpemUpOwo+Pj4+ ICsKPj4+PiArI2lmZGVmIENPTkZJR19EUk1fSTkxNV9ERUJVR19HVUMKPj4+PiArwqDCoMKgIGlm ICh1bmxpa2VseSh0YWlsICE9IFJFQURfT05DRShkZXNjLT50YWlsKSkpIHsKPj4+PiArwqDCoMKg wqDCoMKgwqAgQ1RfRVJST1IoY3QsICJUYWlsIHdhcyBtb2RpZmllZCAldSAhPSAldVxuIiwKPj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2MtPnRhaWwsIGN0Yi0+dGFpbCk7Cj4+Pj4g K8KgwqDCoMKgwqDCoMKgIGRlc2MtPnN0YXR1cyB8PSBHVUNfQ1RCX1NUQVRVU19NSVNNQVRDSDsK Pj4+PiArwqDCoMKgwqDCoMKgwqAgZ290byBjb3JydXB0ZWQ7Cj4+Pj4gK8KgwqDCoCB9Cj4+Pj4g K8KgwqDCoCBpZiAodW5saWtlbHkoKGRlc2MtPnRhaWwgfCBkZXNjLT5oZWFkKSA+PSBzaXplKSkg ewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIENUX0VSUk9SKGN0LCAiSW52YWxpZCBvZmZzZXRz IGhlYWQ9JXUgdGFpbD0ldSAoc2l6ZT0ldSlcbiIsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBoZWFkLCB0YWlsLCBzaXplKTsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRl c2MtPmhlYWQsIGRlc2MtPnRhaWwsIHNpemUpOwo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRl c2MtPnN0YXR1cyB8PSBHVUNfQ1RCX1NUQVRVU19PVkVSRkxPVzsKPj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoCBnb3RvIGNvcnJ1cHRlZDsKPj4+PiDCoMKgwqDCoMKgwqAgfQo+Pj4+IC0KPj4+PiAt wqDCoMKgIC8qCj4+Pj4gLcKgwqDCoMKgICogdGFpbCA9PSBoZWFkIGNvbmRpdGlvbiBpbmRpY2F0 ZXMgZW1wdHkuIEd1QyBGVyBkb2VzIG5vdCBzdXBwb3J0Cj4+Pj4gLcKgwqDCoMKgICogdXNpbmcg dXAgdGhlIGVudGlyZSBidWZmZXIgdG8gZ2V0IHRhaWwgPT0gaGVhZCBtZWFuaW5nIGZ1bGwuCj4+ Pj4gLcKgwqDCoMKgICovCj4+Pj4gLcKgwqDCoCBpZiAodGFpbCA8IGhlYWQpCj4+Pj4gLcKgwqDC oMKgwqDCoMKgIHVzZWQgPSAoc2l6ZSAtIGhlYWQpICsgdGFpbDsKPj4+PiAtwqDCoMKgIGVsc2UK Pj4+PiAtwqDCoMKgwqDCoMKgwqAgdXNlZCA9IHRhaWwgLSBoZWFkOwo+Pj4+IC0KPj4+PiAtwqDC oMKgIC8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNwYWNlIGluY2x1ZGluZyBleHRyYSBkdyBmb3Ig dGhlIGZlbmNlICovCj4+Pj4gLcKgwqDCoCBpZiAodW5saWtlbHkodXNlZCArIGxlbiArIEdVQ19D VEJfSERSX0xFTiA+PSBzaXplKSkKPj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9TUEM7 Cj4+Pj4gKyNlbmRpZgo+Pj4+IMKgwqAgwqDCoMKgwqDCoCAvKgo+Pj4+IMKgwqDCoMKgwqDCoMKg ICogZHcwOiBDVCBoZWFkZXIgKGluY2x1ZGluZyBmZW5jZSkKPj4+PiBAQCAtNDU0LDcgKzQ1Myw5 IEBAIHN0YXRpYyBpbnQgY3Rfd3JpdGUoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+Pj4gwqDC oMKgwqDCoMKgIHdyaXRlX2JhcnJpZXIoY3QpOwo+Pj4+IMKgwqAgwqDCoMKgwqDCoCAvKiBub3cg dXBkYXRlIGRlc2NyaXB0b3IgKi8KPj4+PiArwqDCoMKgIGN0Yi0+dGFpbCA9IHRhaWw7Cj4+Pj4g wqDCoMKgwqDCoMKgIFdSSVRFX09OQ0UoZGVzYy0+dGFpbCwgdGFpbCk7Cj4+Pj4gK8KgwqDCoCBj dGItPnNwYWNlIC09IGxlbiArIEdVQ19DVEJfSERSX0xFTjsKPj4+PiDCoMKgIMKgwqDCoMKgwqAg cmV0dXJuIDA7Cj4+Pj4gwqDCoCBAQCAtNDcwLDcgKzQ3MSw3IEBAIHN0YXRpYyBpbnQgY3Rfd3Jp dGUoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+Pj4gwqDCoMKgICogQHJlcTrCoMKgwqAgcG9p bnRlciB0byBwZW5kaW5nIHJlcXVlc3QKPj4+PiDCoMKgwqAgKiBAc3RhdHVzOsKgwqDCoCBwbGFj ZWhvbGRlciBmb3Igc3RhdHVzCj4+Pj4gwqDCoMKgICoKPj4+PiAtICogRm9yIGVhY2ggc2VudCBy ZXF1ZXN0LCBHdWMgc2hhbGwgc2VuZCBiYWMgQ1QgcmVzcG9uc2UgbWVzc2FnZS4KPj4+PiArICog Rm9yIGVhY2ggc2VudCByZXF1ZXN0LCBHdUMgc2hhbGwgc2VuZCBiYWNrIENUIHJlc3BvbnNlIG1l c3NhZ2UuCj4+Pj4gwqDCoMKgICogT3VyIG1lc3NhZ2UgaGFuZGxlciB3aWxsIHVwZGF0ZSBzdGF0 dXMgb2YgdHJhY2tlZCByZXF1ZXN0IG9uY2UKPj4+PiDCoMKgwqAgKiByZXNwb25zZSBtZXNzYWdl IHdpdGggZ2l2ZW4gZmVuY2UgaXMgcmVjZWl2ZWQuIFdhaXQgaGVyZSBhbmQKPj4+PiDCoMKgwqAg KiBjaGVjayBmb3IgdmFsaWQgcmVzcG9uc2Ugc3RhdHVzIHZhbHVlLgo+Pj4+IEBAIC01MjYsMjQg KzUyNywzNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY3RfZGVhZGxvY2tlZChzdHJ1Y3QKPj4+PiBp bnRlbF9ndWNfY3QgKmN0KQo+Pj4+IMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4+IMKgwqAg fQo+Pj4+IMKgwqAgLXN0YXRpYyBpbmxpbmUgYm9vbCBoMmdfaGFzX3Jvb20oc3RydWN0IGludGVs X2d1Y19jdF9idWZmZXIgKmN0YiwKPj4+PiB1MzIgbGVuX2R3KQo+Pj4+ICtzdGF0aWMgaW5saW5l IGJvb2wgaDJnX2hhc19yb29tKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LCB1MzIgbGVuX2R3KQo+ Pj4+IMKgwqAgewo+Pj4+IC3CoMKgwqAgc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9 IGN0Yi0+ZGVzYzsKPj4+PiAtwqDCoMKgIHUzMiBoZWFkID0gUkVBRF9PTkNFKGRlc2MtPmhlYWQp Owo+Pj4+ICvCoMKgwqAgc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiA9ICZjdC0+Y3Ri cy5zZW5kOwo+Pj4+ICvCoMKgwqAgdTMyIGhlYWQ7Cj4+Pj4gwqDCoMKgwqDCoMKgIHUzMiBzcGFj ZTsKPj4+PiDCoMKgIC3CoMKgwqAgc3BhY2UgPSBDSVJDX1NQQUNFKGRlc2MtPnRhaWwsIGhlYWQs IGN0Yi0+c2l6ZSk7Cj4+Pj4gK8KgwqDCoCBpZiAoY3RiLT5zcGFjZSA+PSBsZW5fZHcpCj4+Pj4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOwo+Pj4+ICsKPj4+PiArwqDCoMKgIGhlYWQgPSBS RUFEX09OQ0UoY3RiLT5kZXNjLT5oZWFkKTsKPj4+PiArwqDCoMKgIGlmICh1bmxpa2VseShoZWFk ID4gY3RiLT5zaXplKSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBDVF9FUlJPUihjdCwgIkNvcnJ1 cHRlZCBkZXNjcmlwdG9yIGhlYWQ9JXUgdGFpbD0ldSBzaXplPSV1XG4iLAo+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY3RiLT5kZXNjLT5oZWFkLCBjdGItPmRlc2MtPnRhaWwsIGN0Yi0+ c2l6ZSk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGN0Yi0+ZGVzYy0+c3RhdHVzIHw9IEdVQ19DVEJf U1RBVFVTX09WRVJGTE9XOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjdGItPmJyb2tlbiA9IHRydWU7 Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKPj4+PiArwqDCoMKgIH0KPj4+PiAr Cj4+Pj4gK8KgwqDCoCBzcGFjZSA9IENJUkNfU1BBQ0UoY3RiLT50YWlsLCBoZWFkLCBjdGItPnNp emUpOwo+Pj4+ICvCoMKgwqAgY3RiLT5zcGFjZSA9IHNwYWNlOwo+Pj4+IMKgwqAgwqDCoMKgwqDC oCByZXR1cm4gc3BhY2UgPj0gbGVuX2R3Owo+Pj4+IMKgwqAgfQo+Pj4+IMKgwqAgwqAgc3RhdGlj IGludCBoYXNfcm9vbV9uYihzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwgdTMyIGxlbl9kdykKPj4+ PiDCoMKgIHsKPj4+PiAtwqDCoMKgIHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIgPSAm Y3QtPmN0YnMuc2VuZDsKPj4+PiAtCj4+Pj4gwqDCoMKgwqDCoMKgIGxvY2tkZXBfYXNzZXJ0X2hl bGQoJmN0LT5jdGJzLnNlbmQubG9jayk7Cj4+Pj4gwqDCoCAtwqDCoMKgIGlmICh1bmxpa2VseSgh aDJnX2hhc19yb29tKGN0YiwgbGVuX2R3KSkpIHsKPj4+PiArwqDCoMKgIGlmICh1bmxpa2VseSgh aDJnX2hhc19yb29tKGN0LCBsZW5fZHcpKSkgewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm IChjdC0+c3RhbGxfdGltZSA9PSBLVElNRV9NQVgpCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjdC0+c3RhbGxfdGltZSA9IGt0aW1lX2dldCgpOwo+Pj4+IMKgwqAgQEAgLTYxMyw3 ICs2MjUsNyBAQCBzdGF0aWMgaW50IGN0X3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+ Pj4gwqDCoMKgwqDCoMKgwqAgKi8KPj4+PiDCoMKgIHJldHJ5Ogo+Pj4+IMKgwqDCoMKgwqDCoCBz cGluX2xvY2tfaXJxc2F2ZSgmY3RiLT5sb2NrLCBmbGFncyk7Cj4+Pj4gLcKgwqDCoCBpZiAodW5s aWtlbHkoIWgyZ19oYXNfcm9vbShjdGIsIGxlbiArIEdVQ19DVEJfSERSX0xFTikpKSB7Cj4+Pj4g K8KgwqDCoCBpZiAodW5saWtlbHkoIWgyZ19oYXNfcm9vbShjdCwgbGVuICsgR1VDX0NUQl9IRFJf TEVOKSkpIHsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoY3QtPnN0YWxsX3RpbWUgPT0g S1RJTUVfTUFYKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3QtPnN0YWxsX3Rp bWUgPSBrdGltZV9nZXQoKTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZjdGItPmxvY2ssIGZsYWdzKTsKPj4+PiBAQCAtNzMzLDcgKzc0NSw3IEBAIHN0 YXRpYyBpbnQgY3RfcmVhZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwgc3RydWN0Cj4+Pj4gY3Rf aW5jb21pbmdfbXNnICoqbXNnKQo+Pj4+IMKgwqAgewo+Pj4+IMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg aW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0LT5jdGJzLnJlY3Y7Cj4+Pj4gwqDCoMKgwqDC oMKgIHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4+Pj4gLcKg wqDCoCB1MzIgaGVhZCA9IGRlc2MtPmhlYWQ7Cj4+Pj4gK8KgwqDCoCB1MzIgaGVhZCA9IGN0Yi0+ aGVhZDsKPj4+PiDCoMKgwqDCoMKgwqAgdTMyIHRhaWwgPSBkZXNjLT50YWlsOwo+Pj4+IMKgwqDC oMKgwqDCoCB1MzIgc2l6ZSA9IGN0Yi0+c2l6ZTsKPj4+PiDCoMKgwqDCoMKgwqAgdTMyICpjbWRz ID0gY3RiLT5jbWRzOwo+Pj4+IEBAIC03NDgsMTIgKzc2MCwyOSBAQCBzdGF0aWMgaW50IGN0X3Jl YWQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+Pj4gc3RydWN0IGN0X2luY29taW5nX21zZyAq Km1zZykKPj4+PiDCoMKgwqDCoMKgwqAgaWYgKHVubGlrZWx5KGRlc2MtPnN0YXR1cykpCj4+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBjb3JydXB0ZWQ7Cj4+Pj4gwqDCoCAtwqDCoMKgIGlm ICh1bmxpa2VseSgodGFpbCB8IGhlYWQpID49IHNpemUpKSB7Cj4+Pj4gK8KgwqDCoCBHRU1fQlVH X09OKGhlYWQgPiBzaXplKTsKPj4+IElzIHRoZSBCVUdfT04gbmVjZXNzYXJ5IGdpdmVuIHRoYXQg Ym90aCBvcHRpb25zIGJlbG93IGRvIHRoZSBzYW1lIGNoZWNrCj4+PiBidXQgYXMgYSBjb3JydXB0 ZWQgYnVmZmVyIHRlc3QgKHdpdGggc3Vic2VxdWVudCByZWNvdmVyeSBieSBHVCByZXNldD8pCj4+ PiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSBkcml2ZXIuCj4+ICJoZWFkIiBhbmQgInNpemUiIGFy ZSBub3cgZnVsbHkgb3duZWQgYnkgdGhlIGRyaXZlci4KPj4gQlVHT04gaGVyZSBpcyB0byBtYWtl IHN1cmUgZHJpdmVyIGlzIGNvZGVkIGNvcnJlY3RseS4KPiBUaGUgcG9pbnQgaXMgdGhhdCBib3Ro IHNpZGVzIG9mIHRoZSAjaWYgYmVsb3cgYWxzbyB2YWxpZGF0ZSBoZWFkLiBTbwoKYnV0IG5vdCB0 aGUgc2FtZSAiaGVhZCIKCnVuZGVyIERFQlVHIHdlIGFyZSB2YWxpZGF0aW5nIHRoZSBvbmUgZnJv bSBkZXNjcmlwdG9yICh0b2dldGhlciB3aXRoCnRhaWwpIC0gYW5kIHRoYXQgc2hvdWxkIGJlIHJl Y292ZXJhYmxlIGFzIGlmIHRoaXMgZmFpbHMgaXQgd2FzIGNsZWFybHkKbm90IG91ciBmYXVsdC4K CmJ1dCB1bmRlciBub24tREVCVUcgd2Ugd2VyZSBhdHRlbXB0aW5nIHRvIHZhbGlkYXRlIGFnYWlu IHRoZSBsb2NhbCBvbmUsCnByZXRlbmRpbmcgdGhhdCB0aGlzIGlzIHJlY292ZXJhYmxlLCBidXQg aXQgaXMgbm90LCBhcyB0aGlzIGlzIG91ciBmYXVsdAooZWxzZXdoZXJlIGluIGk5MTUgd2UgZG9u J3QgYXR0ZW1wdCB0byByZWNvdmVyIGZyb20gb2J2aW91cyBjb2RpbmcgZXJyb3JzKS4KCj4gZmly c3QgdGhlcmUgaXMgYSBCVUdfT04sIHRoZW4gdGhlcmUgaXMgdGhlIHNhbWUgdGVzdCBidXQgd2l0 aG91dCBibG93aW5nCj4gdGhlIGRyaXZlciBhcGFydC4gT25lIG9yIHRoZSBvdGhlciBpcyBub3Qg cmVxdWlyZWQuIE15IHZvdGUgd291bGQgYmUgdG8KPiBrZWVwIHRoZSByZWNvdmVyYWJsZSB0ZXN0 IHJhdGhlciB0aGFuIHRoZSBCVUdfT04uCgpJTUhPIHdlIHNob3VsZCBrZWVwIEdFTUJVR09OIGFu ZCBkcm9wIHJlZHVuZGFudCBjaGVjayBpbiBub24tREVCVUcuCgpCdXQgbGV0IE1hdHQgZGVjaWRl LgoKTWljaGFsCgo+IAo+IEpvaG4uCj4gCj4+Cj4+Pj4gKwo+Pj4+ICsjaWZkZWYgQ09ORklHX0RS TV9JOTE1X0RFQlVHX0dVQwo+Pj4+ICvCoMKgwqAgaWYgKHVubGlrZWx5KGhlYWQgIT0gUkVBRF9P TkNFKGRlc2MtPmhlYWQpKSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBDVF9FUlJPUihjdCwgIkhl YWQgd2FzIG1vZGlmaWVkICV1ICE9ICV1XG4iLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZGVzYy0+aGVhZCwgY3RiLT5oZWFkKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgZGVzYy0+c3Rh dHVzIHw9IEdVQ19DVEJfU1RBVFVTX01JU01BVENIOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBnb3Rv IGNvcnJ1cHRlZDsKPj4+PiArwqDCoMKgIH0KPj4+PiArwqDCoMKgIGlmICh1bmxpa2VseSgoZGVz Yy0+dGFpbCB8IGRlc2MtPmhlYWQpID49IHNpemUpKSB7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIENU X0VSUk9SKGN0LCAiSW52YWxpZCBvZmZzZXRzIGhlYWQ9JXUgdGFpbD0ldSAoc2l6ZT0ldSlcbiIs Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBoZWFkLCB0YWlsLCBzaXplKTsKPj4+PiAr wqDCoMKgwqDCoMKgwqAgZGVzYy0+c3RhdHVzIHw9IEdVQ19DVEJfU1RBVFVTX09WRVJGTE9XOwo+ Pj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGNvcnJ1cHRlZDsKPj4+PiArwqDCoMKgIH0KPj4+PiAr I2Vsc2UKPj4+PiArwqDCoMKgIGlmICh1bmxpa2VseSgodGFpbCB8IGN0Yi0+aGVhZCkgPj0gc2l6 ZSkpIHsKPj4+IENvdWxkIGp1c3QgYmUgJ2hlYWQnIHJhdGhlciB0aGFuICdjdGItPmhlYWQnLgo+ PiBvciBkcm9wICJjdGItPmhlYWQiIGNvbXBsZXRlbHkgc2luY2UgdGhpcyBpcyBkcml2ZXIgb3du ZWQgZmllbGQgYW5kCj4+IGFib3ZlIHlvdSBhbHJlYWR5IGhhdmUgQlVHT04gdG8gdGVzdCBpdAo+ Pgo+PiBNaWNoYWwKPj4KPj4+IEpvaG4uCj4+Pgo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIENU X0VSUk9SKGN0LCAiSW52YWxpZCBvZmZzZXRzIGhlYWQ9JXUgdGFpbD0ldSAoc2l6ZT0ldSlcbiIs Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGhlYWQsIHRhaWwsIHNpemUpOwo+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2MtPnN0YXR1cyB8PSBHVUNfQ1RCX1NUQVRVU19P VkVSRkxPVzsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGNvcnJ1cHRlZDsKPj4+PiDC oMKgwqDCoMKgwqAgfQo+Pj4+ICsjZW5kaWYKPj4+PiDCoMKgIMKgwqDCoMKgwqAgLyogdGFpbCA9 PSBoZWFkIGNvbmRpdGlvbiBpbmRpY2F0ZXMgZW1wdHkgKi8KPj4+PiDCoMKgwqDCoMKgwqAgYXZh aWxhYmxlID0gdGFpbCAtIGhlYWQ7Cj4+Pj4gQEAgLTgwMyw2ICs4MzIsNyBAQCBzdGF0aWMgaW50 IGN0X3JlYWQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsIHN0cnVjdAo+Pj4+IGN0X2luY29taW5n X21zZyAqKm1zZykKPj4+PiDCoMKgwqDCoMKgwqAgfQo+Pj4+IMKgwqDCoMKgwqDCoCBDVF9ERUJV RyhjdCwgInJlY2VpdmVkICUqcGhcbiIsIDQgKiBsZW4sICgqbXNnKS0+bXNnKTsKPj4+PiDCoMKg ICvCoMKgwqAgY3RiLT5oZWFkID0gaGVhZDsKPj4+PiDCoMKgwqDCoMKgwqAgLyogbm93IHVwZGF0 ZSBkZXNjcmlwdG9yICovCj4+Pj4gwqDCoMKgwqDCoMKgIFdSSVRFX09OQ0UoZGVzYy0+aGVhZCwg aGVhZCk7Cj4+Pj4gwqDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjX2N0LmgKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19jdC5oCj4+Pj4gaW5kZXggYmVlMDM3OTRjMWViLi5lZGQxYmJhMDQ0NWQgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaAo+Pj4+IEBAIC0zMyw2 ICszMyw5IEBAIHN0cnVjdCBpbnRlbF9ndWM7Cj4+Pj4gwqDCoMKgICogQGRlc2M6IHBvaW50ZXIg dG8gdGhlIGJ1ZmZlciBkZXNjcmlwdG9yCj4+Pj4gwqDCoMKgICogQGNtZHM6IHBvaW50ZXIgdG8g dGhlIGNvbW1hbmRzIGJ1ZmZlcgo+Pj4+IMKgwqDCoCAqIEBzaXplOiBzaXplIG9mIHRoZSBjb21t YW5kcyBidWZmZXIgaW4gZHdvcmRzCj4+Pj4gKyAqIEBoZWFkOiBsb2NhbCBzaGFkb3cgY29weSBv ZiBoZWFkIGluIGR3b3Jkcwo+Pj4+ICsgKiBAdGFpbDogbG9jYWwgc2hhZG93IGNvcHkgb2YgdGFp bCBpbiBkd29yZHMKPj4+PiArICogQHNwYWNlOiBsb2NhbCBzaGFkb3cgY29weSBvZiBzcGFjZSBp biBkd29yZHMKPj4+PiDCoMKgwqAgKiBAYnJva2VuOiBmbGFnIHRvIGluZGljYXRlIGlmIGRlc2Ny aXB0b3IgZGF0YSBpcyBicm9rZW4KPj4+PiDCoMKgwqAgKi8KPj4+PiDCoMKgIHN0cnVjdCBpbnRl bF9ndWNfY3RfYnVmZmVyIHsKPj4+PiBAQCAtNDAsNiArNDMsOSBAQCBzdHJ1Y3QgaW50ZWxfZ3Vj X2N0X2J1ZmZlciB7Cj4+Pj4gwqDCoMKgwqDCoMKgIHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2Mg KmRlc2M7Cj4+Pj4gwqDCoMKgwqDCoMKgIHUzMiAqY21kczsKPj4+PiDCoMKgwqDCoMKgwqAgdTMy IHNpemU7Cj4+Pj4gK8KgwqDCoCB1MzIgdGFpbDsKPj4+PiArwqDCoMKgIHUzMiBoZWFkOwo+Pj4+ ICvCoMKgwqAgdTMyIHNwYWNlOwo+Pj4+IMKgwqDCoMKgwqDCoCBib29sIGJyb2tlbjsKPj4+PiDC oMKgIH07Cj4+Pj4gwqDCoCAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==