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 513FAC43334 for ; Mon, 27 Jun 2022 12:26: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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=MUIApfAbCW4Np4MqvzTu4Th1iqxTBoCSra/Xi69g044=; b=PTBM0RySb7gp5f At9eet2XwtINXQvx6bNF0J27UwJYIxucaIiUT60vGZR11N1LXSb5m3ljcgfbPF5f02HRPWFEvl2iT 5fycr9i9H2rX6e9GwzjZRH0poNNhL9I9eaBKWBM/lGGLT51M+puhAFW/OZzugIq5LFnl6e4mj14vH CuQiZtUqCCqaqEK0+rZLekQuoAliHoM2hQ7zRLO2desCnVPPM+ETK6WYdCPy4/yaYugoZ4VlLe+jH p9X2NFaDc+lysLLvplHntL2uI9UC1qllQv+XQ5zX50lKYqosUWVvcC7oSTROZoYloVBquu6TyF2Zu tF56rOAe4iqu+WWhFgdw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5nnp-000qYZ-Ak; Mon, 27 Jun 2022 12:25:17 +0000 Received: from out30-131.freemail.mail.aliyun.com ([115.124.30.131]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5nnl-000qVZ-EU for linux-arm-kernel@lists.infradead.org; Mon, 27 Jun 2022 12:25:15 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=guanghuifeng@linux.alibaba.com;NM=1;PH=DS;RN=20;SR=0;TI=SMTPD_---0VHb5j7j_1656332704; Received: from 30.225.28.167(mailfrom:guanghuifeng@linux.alibaba.com fp:SMTPD_---0VHb5j7j_1656332704) by smtp.aliyun-inc.com; Mon, 27 Jun 2022 20:25:05 +0800 Message-ID: <075b0a8e-cb7e-70f6-b45a-54cd31886794@linux.alibaba.com> Date: Mon, 27 Jun 2022 20:25:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH] arm64: mm: fix linear mapping mem access performace degradation To: "Leizhen (ThunderTown)" , Mike Rapoport Cc: baolin.wang@linux.alibaba.com, catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, david@redhat.com, jianyong.wu@arm.com, james.morse@arm.com, quic_qiancai@quicinc.com, christophe.leroy@csgroup.eu, jonathan@marek.ca, mark.rutland@arm.com, anshuman.khandual@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, geert+renesas@glider.be, ardb@kernel.org, linux-mm@kvack.org, bhe@redhat.com References: <1656241815-28494-1-git-send-email-guanghuifeng@linux.alibaba.com> <4d18d303-aeed-0beb-a8a4-32893f2d438d@linux.alibaba.com> <32aefb80-c59c-74b6-c373-dd24edba0752@huawei.com> From: "guanghui.fgh" In-Reply-To: <32aefb80-c59c-74b6-c373-dd24edba0752@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_052513_687000_31438BE0 X-CRM114-Status: GOOD ( 23.97 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhhbmtzLgoK5ZyoIDIwMjIvNi8yNyAyMDowNiwgTGVpemhlbiAoVGh1bmRlclRvd24pIOWGmemB kzoKPiAKPiAKPiBPbiAyMDIyLzYvMjcgMTg6NDYsIGd1YW5naHVpLmZnaCB3cm90ZToKPj4KPj4K Pj4g5ZyoIDIwMjIvNi8yNyAxNzo0OSwgTWlrZSBSYXBvcG9ydCDlhpnpgZM6Cj4+PiBQbGVhc2Ug ZG9uJ3QgcG9zdCBIVE1MLgo+Pj4KPj4+IE9uIE1vbiwgSnVuIDI3LCAyMDIyIGF0IDA1OjI0OjEw UE0gKzA4MDAsIGd1YW5naHVpLmZnaCB3cm90ZToKPj4+PiBUaGFua3MuCj4+Pj4KPj4+PiDlnKgg MjAyMi82LzI3IDE0OjM0LCBNaWtlIFJhcG9wb3J0IOWGmemBkzoKPj4+Pgo+Pj4+ICDCoMKgwqDC oCBPbiBTdW4sIEp1biAyNiwgMjAyMiBhdCAwNzoxMDoxNVBNICswODAwLCBHdWFuZ2h1aSBGZW5n IHdyb3RlOgo+Pj4+Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgVGhlIGFybTY0IGNhbiBidWlsZCAy TS8xRyBibG9jay9zZWN0aWlvbiBtYXBwaW5nLiBXaGVuIHVzaW5nIERNQS9ETUEzMiB6b25lCj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqAgKGVuYWJsZSBjcmFzaGtlcm5lbCwgZGlzYWJsZSByb2RhdGEg ZnVsbCwgZGlzYWJsZSBrZmVuY2UpLCB0aGUgbWVtX21hcCB3aWxsCj4+Pj4gIMKgwqDCoMKgwqDC oMKgwqAgdXNlIG5vbiBibG9jay9zZWN0aW9uIG1hcHBpbmcoZm9yIGNyYXNoa2VybmVsIHJlcXVp cmVzIHRvIHNocmluayB0aGUgcmVnaW9uCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgaW4gcGFnZSBn cmFudWxhcml0eSkuIEJ1dCBpdCB3aWxsIGRlZ3JhZGUgcGVyZm9ybWFuY2Ugd2hlbiBkb2luZyBs YXJnaW5nCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgY29udGludW91cyBtZW0gYWNjZXNzIGluIGtl cm5lbChtZW1jcHkvbWVtbW92ZSwgZXRjKS4KPj4+Pgo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIFRo ZXJlIGFyZSBtYW55IGNoYW5nZXMgYW5kIGRpc2N1c3Npb25zOgo+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgIGNvbW1pdCAwMzE0OTU2MzViNDYKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBjb21taXQgMWE4 ZTFjZWY3NjAzCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgY29tbWl0IDg0MjRlY2RkZTdkZgo+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgIGNvbW1pdCAwYTMwYzUzNTczYjAKPj4+PiAgwqDCoMKgwqDCoMKg wqDCoCBjb21taXQgMjY4NzI3NWE1ODQzCj4+Pj4KPj4+PiAgwqDCoMKgwqAgUGxlYXNlIGluY2x1 ZGUgb25lbGluZSBzdW1tYXJ5IG9mIHRoZSBjb21taXQuIChTZWUgc2VjdGlvbiAiRGVzY3JpYmUg eW91cgo+Pj4+ICDCoMKgwqDCoCBjaGFuZ2VzIiBpbiBEb2N1bWVudGF0aW9uL3Byb2Nlc3Mvc3Vi bWl0dGluZy1wYXRjaGVzLnJzdCkKPj4+Pgo+Pj4+IE9LLCBJIHdpbGwgYWRkIG9uZWxpbmUgc3Vt bWFyeSBpbiB0aGUgZ2l0IGNvbW1pdCBtZXNzYWdlcy4KPj4+Pgo+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgIFRoaXMgcGF0Y2ggY2hhbmdlcyBtZW1fbWFwIHRvIHVzZSBibG9jay9zZWN0aW9uIG1hcHBp bmcgd2l0aCBjcmFzaGtlcm5lbC4KPj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBGaXJzdGx5LCBkbyBi bG9jay9zZWN0aW9uIG1hcHBpbmcobm9ybWFsbHkgMk0gb3IgMUcpIGZvciBhbGwgYXZhaWwgbWVt IGF0Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgbWVtX21hcCwgcmVzZXJ2ZSBjcmFzaGtlcm5lbCBt ZW1vcnkuIEFuZCB0aGVuIHdhbGtpbmcgcGFnZXRhYmxlIHRvIHNwbGl0Cj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqAgYmxvY2svc2VjdGlvbiBtYXBwaW5nIHRvIG5vbiBibG9jay9zZWN0aW9uIG1hcHBp bmcobm9ybWFsbHkgNEspIFtbW29ubHldXV0KPj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBmb3IgY3Jh c2hrZXJuZWwgbWVtLgo+Pj4+Cj4+Pj4gIMKgwqDCoMKgIFRoaXMgYWxyZWFkeSBoYXBwZW5zIHdo ZW4gWk9ORV9ETUEvWk9ORV9ETUEzMiBhcmUgZGlzYWJsZWQuIFBsZWFzZSBleHBsYWluCj4+Pj4g IMKgwqDCoMKgIHdoeSBpcyBpdCBPayB0byBjaGFuZ2UgdGhlIHdheSB0aGUgbWVtb3J5IGlzIG1h cHBlZCB3aXRoCj4+Pj4gIMKgwqDCoMKgIFpPTkVfRE1BL1pPTkVfRE1BMzIgZW5hYmxlZC4KPj4+ Pgo+Pj4+IEluIHNob3J0Ogo+Pj4+Cj4+Pj4gMS5idWlsZGluZyBhbGwgYXZhaWwgbWVtIHdpdGgg YmxvY2svc2VjdGlvbiBtYXBwaW5n77yIbm9ybWFsbHkgMUcvMk3vvIkgd2l0aG91dAo+Pj4+IGlu c3BlY3RpbmcgY3Jhc2hrZXJuZWwKPj4+PiAyLiBSZXNlcnZlIGNyYXNoa2VybmVsIG1lbSBhcyBz YW1lIGFzIHByZXZpb3VzIGRvaW5nCj4+Pj4gMy4gb25seSBjaGFuZ2UgdGhlIGNyYXNoa2Vybmxl IG1lbSBtYXBwaW5nIHRvIG5vcm1hbCBtYXBwaW5nKG5vcm1hbGx5IDRrKS4KPj4+PiBXaXRoIHRo aXMgbWV0aG9kLCB0aGVyZSBhcmUgYmxvY2svc2VjdGlvbiBtYXBwaW5nIGFzIG1vcmUgYXMgcG9z c2libGUuCj4+Pgo+Pj4gVGhpcyBkb2VzIG5vdCBhbnN3ZXIgdGhlIHF1ZXN0aW9uIHdoeSBjaGFu Z2luZyB0aGUgd2F5IHRoZSBtZW1vcnkgaXMgbWFwcGVkCj4+PiB3aGVuIHRoZXJlIGlzIFpPTkVf RE1BL0RNQTMyIGFuZCBjcmFzaGtlcm5lbCB3b24ndCBjYXVzZSBhIHJlZ3Jlc3Npb24uCj4+Pgo+ PiAxLlF1b3RlZCBtZXNzYWdlcyBmcm9tIGFyY2gvYXJtNjQvbW0vaW5pdC5jCj4+Cj4+ICJNZW1v cnkgcmVzZXJ2YXRpb24gZm9yIGNyYXNoIGtlcm5lbCBlaXRoZXIgZG9uZSBlYXJseSBvciBkZWZl cnJlZAo+PiBkZXBlbmRpbmcgb24gRE1BIG1lbW9yeSB6b25lcyBjb25maWdzIChaT05FX0RNQSkg LS0KPj4KPj4gSW4gYWJzZW5jZSBvZiBaT05FX0RNQSBjb25maWdzIGFybTY0X2RtYV9waHlzX2xp bWl0IGluaXRpYWxpemVkCj4+IGhlcmUgaW5zdGVhZCBvZiBtYXhfem9uZV9waHlzKCkuwqAgVGhp cyBsZXRzIGVhcmx5IHJlc2VydmF0aW9uIG9mCj4+IGNyYXNoIGtlcm5lbCBtZW1vcnkgd2hpY2gg aGFzIGEgZGVwZW5kZW5jeSBvbiBhcm02NF9kbWFfcGh5c19saW1pdC4KPj4gUmVzZXJ2aW5nIG1l bW9yeSBlYXJseSBmb3IgY3Jhc2gga2VybmVsIGFsbG93cyBsaW5lYXIgY3JlYXRpb24gb2YgYmxv Y2sKPj4gbWFwcGluZ3MgKGdyZWF0ZXIgdGhhbiBwYWdlLWdyYW51bGFyaXR5KSBmb3IgYWxsIHRo ZSBtZW1vcnkgYmFuayByYW5ncy4KPj4gSW4gdGhpcyBzY2hlbWUgYSBjb21wYXJhdGl2ZWx5IHF1 aWNrZXIgYm9vdCBpcyBvYnNlcnZlZC4KPj4KPj4gSWYgWk9ORV9ETUEgY29uZmlncyBhcmUgZGVm aW5lZCwgY3Jhc2gga2VybmVsIG1lbW9yeSByZXNlcnZhdGlvbgo+PiBpcyBkZWxheWVkIHVudGls IERNQSB6b25lIG1lbW9yeSByYW5nZSBzaXplIGluaXRpYWxpemF0aW9uIHBlcmZvcm1lZCBpbgo+ PiB6b25lX3NpemVzX2luaXQoKS7CoCBUaGUgZGVmZXIgaXMgbmVjZXNzYXJ5IHRvIHN0ZWVyIGNs ZWFyIG9mIERNQSB6b25lCj4+IG1lbW9yeSByYW5nZSB0byBhdm9pZCBvdmVybGFwIGFsbG9jYXRp b24uwqAgU28gY3Jhc2gga2VybmVsIG1lbW9yeSBib3VuZGFyaWVzIGFyZSBub3Qga25vd24gd2hl biBtYXBwaW5nIGFsbCBiYW5rIG1lbW9yeSByYW5nZXMsIHdoaWNoIG90aGVyd2lzZSBtZWFucyBu b3QgcG9zc2libGUgdG8gZXhjbHVkZSBjcmFzaCBrZXJuZWwgcmFuZ2UgZnJvbSBjcmVhdGluZyBi bG9jayBtYXBwaW5ncyBzbyBwYWdlLWdyYW51bGFyaXR5IG1hcHBpbmdzIGFyZSBjcmVhdGVkIGZv ciB0aGUgZW50aXJlIG1lbW9yeSByYW5nZS4iCj4+Cj4+IE5hbWVseSwgdGhlIGluaXQgb3JkZXI6 IG1lbWJsb2NrIGluaXQtLS0+bGluZWFyIG1lbSBtYXBwaW5nKDRrIG1hcHBpbmcgZm9yIGNyYXNo a2VybmVsLCByZXF1aXJpbmlnIHBhZ2UtZ3JhbnVsYXJpdHkgY2hhbmdpbmcpKS0tLT56b25lIGRt YSBsaW1pdC0tLT5yZXNlcnZlIGNyYXNoa2VybmVsLgo+PiBTbyB3aGVuIGVuYWJsZSBaT05FIERN QSBhbmQgdXNpbmcgY3Jhc2hrZXJuZWwsIHRoZSBtZW0gbWFwcGluZyB1c2luZyA0ayBtYXBwaW5n Lgo+Pgo+PiAyLkFzIG1lbnRpb25lZCBhYm92ZSwgd2hlbiBsaW5lYXIgbWVtIHVzZSA0ayBtYXBw aW5nIHNpbXBseSwgdGhlcmUgaXMgaGlnaCBkdGxiIG1pc3MoZGVncmFkZSBwZXJmb3JtYW5jZSku Cj4+IFRoaXMgcGF0Y2ggdXNlIGJsb2NrL3NlY3Rpb24gbWFwcGluZyBhcyBmYXIgYXMgcG9zc2li bGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudC4KPj4KPj4gMy5UaGlzIHBhdGNoIHJlc2Vy dmUgY3Jhc2hrZXJuZWwgYXMgc2FtZSBhcyB0aGUgaGlzdG9yeShaT05FIERNQSAmIGNyYXNoa2Vy bmVsIHJlc2VydmluZyBvcmRlciksIGFuZCBvbmx5IGNoYW5nZSB0aGUgbGluZWFyIG1lbSBtYXBw aW5nIHRvIGJsb2NrL3NlY3Rpb24gbWFwcGluZy4KPj4gLgo+Pgo+IAo+IEkgdGhpbmsgTWlrZSBS YXBvcG9ydCdzIHByb2JhYmx5IGFza2luZyB5b3UgdG8gYW5zd2VyIHdoZXRoZXIgeW91J3ZlCj4g dGFrZW4gaW50byBhY2NvdW50IHN1Y2ggYXMgQkJNLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2lu ZyBjb2RlOgo+IHdlIHNob3VsZCBwcmVwYXJlIHRoZSBuZXh0IGxldmVsIHBndGFibGUgZmlyc3Qs IHRoZW4gY2hhbmdlIDJNIGJsb2NrCj4gbWFwcGluZyB0byA0SyBwYWdlIG1hcHBpbmcsIGFuZCBm bHVzaCBUTEIgYXQgdGhlIGVuZC4KPiA+ICtzdGF0aWMgdm9pZCBpbml0X2NyYXNoa2VybmVsX3Bt ZChwdWRfdCAqcHVkcCwgdW5zaWduZWQgbG9uZyBhZGRyLAo+ICsJCQkJIHVuc2lnbmVkIGxvbmcg ZW5kLCBwaHlzX2FkZHJfdCBwaHlzLAo+ICsJCQkJIHBncHJvdF90IHByb3QsCj4gKwkJCQkgcGh5 c19hZGRyX3QgKCpwZ3RhYmxlX2FsbG9jKShpbnQpLCBpbnQgZmxhZ3MpCj4gK3sKPiArCXBoeXNf YWRkcl90IG1hcF9vZmZzZXQ7Cj4gKwl1bnNpZ25lZCBsb25nIG5leHQ7Cj4gKwlwbWRfdCAqcG1k cDsKPiArCXBtZHZhbF90IHBtZHZhbDsKPiArCj4gKwlwbWRwID0gcG1kX29mZnNldChwdWRwLCBh ZGRyKTsKPiArCWRvIHsKPiArCQluZXh0ID0gcG1kX2FkZHJfZW5kKGFkZHIsIGVuZCk7Cj4gKwkJ aWYgKCFwbWRfbm9uZSgqcG1kcCkgJiYgcG1kX3NlY3QoKnBtZHApKSB7Cj4gKwkJCXBoeXNfYWRk cl90IHB0ZV9waHlzID0gcGd0YWJsZV9hbGxvYyhQQUdFX1NISUZUKTsKPiArCQkJcG1kX2NsZWFy KHBtZHApOwo+ICsJCQlwbWR2YWwgPSBQTURfVFlQRV9UQUJMRSB8IFBNRF9UQUJMRV9VWE47Cj4g KwkJCWlmIChmbGFncyAmIE5PX0VYRUNfTUFQUElOR1MpCj4gKwkJCQlwbWR2YWwgfD0gUE1EX1RB QkxFX1BYTjsKPiArCQkJX19wbWRfcG9wdWxhdGUocG1kcCwgcHRlX3BoeXMsIHBtZHZhbCk7Cj4g KwkJCWZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoYWRkciwgYWRkciArIFBBR0VfU0laRSk7Cj4gCj4g VGhlIHBndGFibGUgaXMgZW1wdHkgbm93LiBIb3dldmVyLCBtZW1vcnkgb3RoZXIgdGhhbiBjcmFz aGtlcm5lbCBtYXkgYmUgYmVpbmcgYWNjZXNzZWQuCjEuV2hlbiByZXNlcnZpbmcgY3Jhc2hrZXJu ZWwgYW5kIHJlbWFwcGluZyBsaW5lYXIgbWVtIG1hcHBpbmcsIHRoZXJlIGlzIApvbmx5IG9uZSBi b290IGNwdSBydW5uaW5nLiBUaGVyZSBpcyBubyBvdGhlciBjcHUvdGhyZWFkIHJ1bm5pbmcgYXQg dGhlIApzYW1lIHRpbWUuCgoyLldoZW4gY2xlYXJpbmcgYmxvY2svc2VjdGlvbiBtYXBwaW5nLCBJ IGhhdmUgZmx1c2ggdGxiIGJ5IApmbHVzaF90bGJfa2VybmVsX3JhbmdlLiBBZnRlcndhcmRzIHJl YnVpbHQgNGsgbWFwcGluZyhJIHRoaW5rIGl0J3Mgbm8gCm5lZWQgZmx1c2ggdGxiKS4KCj4gCj4g Kwo+ICsJCQltYXBfb2Zmc2V0ID0gYWRkciAtIChhZGRyICYgUE1EX01BU0spOwo+ICsJCQlpZiAo bWFwX29mZnNldCkKPiArCQkJICAgIGFsbG9jX2luaXRfY29udF9wdGUocG1kcCwgYWRkciAmIFBN RF9NQVNLLCBhZGRyLAo+ICsJCQkJCQlwaHlzIC0gbWFwX29mZnNldCwgcHJvdCwKPiArCQkJCQkJ cGd0YWJsZV9hbGxvYywgZmxhZ3MpOwo+ICsKPiArCQkJaWYgKG5leHQgPCAoYWRkciAmIFBNRF9N QVNLKSArIFBNRF9TSVpFKQo+ICsJCQkgICAgYWxsb2NfaW5pdF9jb250X3B0ZShwbWRwLCBuZXh0 LCAoYWRkciAmIFBVRF9NQVNLKSArCj4gKwkJCQkJCVBVRF9TSVpFLCBuZXh0IC0gYWRkciArIHBo eXMsCj4gKwkJCQkJCXByb3QsIHBndGFibGVfYWxsb2MsIGZsYWdzKTsKPiArCQl9Cj4gKwkJYWxs b2NfY3Jhc2hrZXJuZWxfY29udF9wdGUocG1kcCwgYWRkciwgbmV4dCwgcGh5cywgcHJvdCwKPiAr CQkJCQkgICBwZ3RhYmxlX2FsbG9jLCBmbGFncyk7Cj4gKwkJcGh5cyArPSBuZXh0IC0gYWRkcjsK PiArCX0gd2hpbGUgKHBtZHArKywgYWRkciA9IG5leHQsIGFkZHIgIT0gZW5kKTsKPiArfQo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=