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 38850C25B48 for ; Thu, 26 Oct 2023 12:33:22 +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=BBTZnM6oiLBv8RAV9d4wGsD3lf7mmMXGnAe3sAC+E34=; b=Txr1wayUTAJVI4 /ZJj8VUF3BrtsRm4jaPu6iQkjzwwnYZ4dyO4M0DtxzeC6gE6GNY91zUEwRUHA4kMBo196CXjjs/ih HMPxDh4/CNVz2m/uXWAhXjtDbPg1WaHNATKxy/b5nLAJE2K4GE9LKkShl7NxF+OQBjEcVj3I0c8TV PRbxOS0buczVz3ovmpWhnfV1YZK/+2hmMsR+KASP592voOTIp7wGaq2twGUdL0Zowbm4r262f3TIc KsUAd6bnYSbPCb78+8acSZ64rai88SmHnEB5nuxi3/HOhj2/THRQ5ex1b6uz6Fv0Jh+pCv88azfef Ws6JrwFQFQT2qyIP5IMw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvzXb-00EReY-2Q; Thu, 26 Oct 2023 12:32:47 +0000 Received: from out30-98.freemail.mail.aliyun.com ([115.124.30.98]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qvzXV-00ERcp-1E for linux-arm-kernel@lists.infradead.org; Thu, 26 Oct 2023 12:32:45 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0VuxqP9._1698323546; Received: from 30.97.48.63(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VuxqP9._1698323546) by smtp.aliyun-inc.com; Thu, 26 Oct 2023 20:32:27 +0800 Message-ID: <37a3e0d0-329f-576f-2498-986ff260c07a@linux.alibaba.com> Date: Thu, 26 Oct 2023 20:32:42 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] arm64: mm: drop tlb flush operation when clearing the access bit To: Anshuman Khandual , Barry Song <21cnbao@gmail.com> Cc: catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, v-songbaohua@oppo.com, yuzhao@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <2f55f62b-cae2-4eee-8572-1b662a170880@arm.com> From: Baolin Wang In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231026_053241_709330_D7E6D4CF X-CRM114-Status: GOOD ( 28.53 ) 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 CgpPbiAxMC8yNi8yMDIzIDI6MDEgUE0sIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+IAo+IAo+ IE9uIDEwLzI2LzIzIDExOjI0LCBCYXJyeSBTb25nIHdyb3RlOgo+PiBPbiBUaHUsIE9jdCAyNiwg MjAyMyBhdCAxMjo1NeKAr1BNIEFuc2h1bWFuIEtoYW5kdWFsCj4+IDxhbnNodW1hbi5raGFuZHVh bEBhcm0uY29tPiB3cm90ZToKPj4+Cj4+Pgo+Pj4KPj4+IE9uIDEwLzI0LzIzIDE4OjI2LCBCYW9s aW4gV2FuZyB3cm90ZToKPj4+PiBOb3cgcHRlcF9jbGVhcl9mbHVzaF95b3VuZygpIGlzIG9ubHkg Y2FsbGVkIGJ5IGZvbGlvX3JlZmVyZW5jZWQoKSB0bwo+Pj4+IGNoZWNrIGlmIHRoZSBmb2xpbyB3 YXMgcmVmZXJlbmNlZCwgYW5kIG5vdyBpdCB3aWxsIGNhbGwgYSB0bGIgZmx1c2ggb24KPj4+PiBB Uk02NCBhcmNoaXRlY3R1cmUuIEhvd2V2ZXIgdGhlIHRsYiBmbHVzaCBjYW4gYmUgZXhwZW5zaXZl IG9uIEFSTTY0Cj4+Pj4gc2VydmVycywgZXNwZWNpYWxseSBmb3IgdGhlIHN5c3RlbXMgd2l0aCBh IGxhcmdlIENQVSBudW1iZXJzLgo+Pj4KPj4+IFRMQiBmbHVzaCB3b3VsZCBiZSBleHBlbnNpdmUg b24gKmFueSogcGxhdGZvcm0gd2l0aCBsYXJnZSBDUFUgbnVtYmVycyA/CgpQZXJoYXBzIHllcywg YnV0IGRpZCBub3QgbWVhc3VyZSBpdCBvbiBvdGhlciBwbGF0Zm9ybXMuCgo+Pj4+IFNpbWlsYXIg dG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsIGJlbG93IGNvbW1lbnRzIGFsc28gYXBwbHkgZXF1YWxs eSB0bwo+Pj4+IEFSTTY0IGFyY2hpdGVjdHVyZS4gU28gd2UgY2FuIGRyb3AgdGhlIHRsYiBmbHVz aCBvcGVyYXRpb24gaW4KPj4+PiBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKCkgb24gQVJNNjQgYXJj aGl0ZWN0dXJlIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlLgo+Pj4+ICIKPj4+PiAvKiBDbGVh cmluZyB0aGUgYWNjZXNzZWQgYml0IHdpdGhvdXQgYSBUTEIgZmx1c2gKPj4+PiAgICogZG9lc24n dCBjYXVzZSBkYXRhIGNvcnJ1cHRpb24uIFsgSXQgY291bGQgY2F1c2UgaW5jb3JyZWN0Cj4+Pj4g ICAqIHBhZ2UgYWdpbmcgYW5kIHRoZSAobWlzdGFrZW4pIHJlY2xhaW0gb2YgaG90IHBhZ2VzLCBi dXQgdGhlCj4+Pj4gICAqIGNoYW5jZSBvZiB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5IGxvdy4g XQo+Pj4+ICAgKgo+Pj4+ICAgKiBTbyBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBkb24n dCBmbHVzaCB0aGUgVExCIHdoZW4KPj4+PiAgICogY2xlYXJpbmcgdGhlIGFjY2Vzc2VkIGJpdCwg aXQgd2lsbCBldmVudHVhbGx5IGJlIGZsdXNoZWQgYnkKPj4+PiAgICogYSBjb250ZXh0IHN3aXRj aCBvciBhIFZNIG9wZXJhdGlvbiBhbnl3YXkuIFsgSW4gdGhlIHJhcmUKPj4+PiAgICogZXZlbnQg b2YgaXQgbm90IGdldHRpbmcgZmx1c2hlZCBmb3IgYSBsb25nIHRpbWUgdGhlIGRlbGF5Cj4+Pj4g ICAqIHNob3VsZG4ndCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgdGhlcmUncyBubyByZWFsIG1lbW9y eQo+Pj4+ICAgKiBwcmVzc3VyZSBmb3Igc3dhcG91dCB0byByZWFjdCB0by4gXQo+Pj4+ICAgKi8K Pj4+Cj4+PiBJZiBhbHdheXMgdHJ1ZSwgdGhpcyBzb3VuZHMgZ2VuZXJpYyBlbm91Z2ggZm9yIGFs bCBwbGF0Zm9ybXMsIHdoeSBvbmx5Cj4+PiB4ODYgYW5kIGFybTY0ID8KCkkgYW0gbm90IHN1cmUg dGhpcyBpcyBhbHdheXMgdHJ1ZSBmb3IgZXZlcnkgYXJjaGl0ZWN0dXJlcy4KCj4+Pj4gIgo+Pj4+ IFJ1bm5pbmcgdGhlIHRocHNjYWxlIHRvIHNob3cgc29tZSBvYnZpb3VzIGltcHJvdmVtZW50cyBm b3IgY29tcGFjdGlvbgo+Pj4+IGxhdGVuY3kgd2l0aCB0aGlzIHBhdGNoOgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJhc2UgICAgICAgICAgICAgICAgICAgcGF0Y2hlZAo+Pj4+ IEFtZWFuICAgICBmYXVsdC1ib3RoLTEgICAgICAxMDkzLjE5ICggICAwLjAwJSkgICAgIDEwODQu NTcgKiAgIDAuNzklKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMgICAgICAyNTY2LjIyICgg ICAwLjAwJSkgICAgIDIyMjguNDUgKiAgMTMuMTYlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3Ro LTUgICAgICAzNTkxLjIyICggICAwLjAwJSkgICAgIDMxNDYuNzMgKiAgMTIuMzglKgo+Pj4+IEFt ZWFuICAgICBmYXVsdC1ib3RoLTcgICAgICA0MTU3LjI2ICggICAwLjAwJSkgICAgIDQxMTMuNjcg KiAgIDEuMDUlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTEyICAgICA2MTg0Ljc5ICggICAw LjAwJSkgICAgIDUyMTguNzAgKiAgMTUuNjIlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTE4 ICAgICA5MTAzLjcwICggICAwLjAwJSkgICAgIDc3MzkuNzEgKiAgMTQuOTglKgo+Pj4+IEFtZWFu ICAgICBmYXVsdC1ib3RoLTI0ICAgIDEyMzQxLjczICggICAwLjAwJSkgICAgMTA2ODQuMjMgKiAg MTMuNDMlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMwICAgIDE1NTE5LjAwICggICAwLjAw JSkgICAgMTM2OTUuMTQgKiAgMTEuNzUlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMyICAg IDE2MTg5LjE1ICggICAwLjAwJSkgICAgMTQzNjUuNzMgKiAgMTEuMjYlKgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgIGJhc2UgICAgICAgcGF0Y2hlZAo+Pj4+IER1cmF0aW9uIFVzZXIgICAg ICAgICAxNjcuNzggICAgICAxNjEuMDMKPj4+PiBEdXJhdGlvbiBTeXN0ZW0gICAgICAxODM2LjY2 ICAgICAxNjczLjAxCj4+Pj4gRHVyYXRpb24gRWxhcHNlZCAgICAgMjA3NC41OCAgICAgMjA1OS43 NQo+Pj4KPj4+IENvdWxkIHlvdSBwbGVhc2UgcG9pbnQgdG8gdGhlIHRlc3QgcmVwbyB5b3UgYXJl IHJ1bm5pbmcgPwoKVGhlIHRlc3QgaXMgYmFzZWQgb24gdjYuNSBrZXJuZWwuCgo+Pj4+IEJhcnJ5 IFNvbmcgc3VibWl0dGVkIGEgc2ltaWxhciBwYXRjaCBbMV0gYmVmb3JlLCB0aGF0IHJlcGxhY2Vz IHRoZQo+Pj4+IHB0ZXBfY2xlYXJfZmx1c2hfeW91bmdfbm90aWZ5KCkgd2l0aCBwdGVwX2NsZWFy X3lvdW5nX25vdGlmeSgpIGluCj4+Pj4gZm9saW9fcmVmZXJlbmNlZF9vbmUoKS4gSG93ZXZlciwg SSdtIG5vdCBzdXJlIGlmIHJlbW92aW5nIHRoZSB0bGIgZmx1c2gKPj4+PiBvcGVyYXRpb24gaXMg YXBwbGljYWJsZSB0byBldmVyeSBhcmNoaXRlY3R1cmUgaW4ga2VybmVsLCBzbyBkcm9wcGluZwo+ Pj4+IHRoZSB0bGIgZmx1c2ggZm9yIEFSTTY0IHNlZW1zIGEgc2Vuc2libGUgY2hhbmdlLgo+Pj4K Pj4+IFRoZSByZWFzb25pbmcgcHJvdmlkZWQgaGVyZSBzb3VuZHMgZ2VuZXJpYyB3aGVuIHRydWUs IGhlbmNlIHRoZXJlIHNlZW1zCj4+PiB0byBiZSBubyBqdXN0aWZpY2F0aW9uIHRvIGtlZXAgaXQg bGltaXRlZCBqdXN0IGZvciBhcm02NCBhbmQgeDg2LiBBbHNvCgpSaWdodCwgYnV0IEkgY2FuIG5v dCBlbnN1cmUgaWYgdGhpcyB3aWxsIGJyZWFrIG90aGVyIGFyY2hpdGVjdHVyZXMuCgo+Pj4gd2hh dCBhYm91dCBwbWRwX2NsZWFyX2ZsdXNoX3lvdW5nX25vdGlmeSgpIHdoZW4gVEhQIGlzIGVuYWJs ZWQuIFNob3VsZAo+Pj4gdGhhdCBhbHNvIG5vdCBkbyBhIFRMQiBmbHVzaCBhZnRlciBjbGVhcmlu ZyBhY2Nlc3MgYml0ID8gQWx0aG91Z2ggYXJtNjQKClllcywgSSB0aGluayBzby4KCj4+PiBkb2Vz IG5vdCBlbmFibGUgX19IQVZFX0FSQ0hfUE1EUF9DTEVBUl9ZT1VOR19GTFVTSCwgcmF0aGVyIGRl cGVuZHMgb24KPj4+IHRoZSBnZW5lcmljIHBtZHBfY2xlYXJfZmx1c2hfeW91bmcoKSB3aGljaCBh bHNvIGRvZXMgYSBUTEIgZmx1c2ggdmlhCj4+PiBmbHVzaF9wbWRfdGxiX3JhbmdlKCkgd2hpbGUg Y2xlYXJpbmcgdGhlIGFjY2VzcyBiaXQuCj4+Pgo+Pj4+Cj4+Pj4gTm90ZTogSSBhbSBva2F5IGZv ciBib3RoIGFwcHJvYWNoLCBpZiBzb21lb25lIGNhbiBoZWxwIHRvIGVuc3VyZSB0aGF0Cj4+Pj4g YWxsIGFyY2hpdGVjdHVyZXMgZG8gbm90IG5lZWQgdGhlIHRsYiBmbHVzaCB3aGVuIGNsZWFyaW5n IHRoZSBhY2Nlc3NlZAo+Pj4+IGJpdCwgdGhlbiBJIGFsc28gdGhpbmsgQmFycnkncyBwYXRjaCBp cyBiZXR0ZXIgKGhvcGUgQmFycnkgY2FuIHJlc2VuZAo+Pj4+IGhpcyBwYXRjaCkuCj4+Pgo+Pj4g VGhpcyBwYXJhZ3JhcGggYmVsb25ncyBhZnRlciB0aGUgJy0tLS0nIGJlbG93IGFuZCBub3QgcGFy dCBvZiB0aGUgY29tbWl0Cj4+PiBtZXNzYWdlLgoKT0suCgo+Pj4+IFsxXSBodHRwczovL2xvcmUu a2VybmVsLm9yZy9sa21sLzIwMjIwNjE3MDcwNTU1LjM0NDM2OC0xLTIxY25iYW9AZ21haWwuY29t Lwo+Pj4+IFNpZ25lZC1vZmYtYnk6IEJhb2xpbiBXYW5nIDxiYW9saW4ud2FuZ0BsaW51eC5hbGli YWJhLmNvbT4KPj4+PiAtLS0KPj4+PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5o IHwgMzEgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+Pj4+ICAgMSBmaWxlIGNoYW5n ZWQsIDE2IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9hcm02NC9pbmNsdWRl L2FzbS9wZ3RhYmxlLmgKPj4+PiBpbmRleCAwYmQxOGRlOWZkOTcuLjI5NzlkNzk2YmE5ZCAxMDA2 NDQKPj4+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+Pj4+ICsrKyBi L2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4+Pj4gQEAgLTkwNSwyMSArOTA1LDIy IEBAIHN0YXRpYyBpbmxpbmUgaW50IHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCj4+Pj4gICBzdGF0aWMgaW5saW5lIGludCBwdGVwX2NsZWFyX2Zs dXNoX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICpw dGVwKQo+Pj4+ICAgewo+Pj4+IC0gICAgIGludCB5b3VuZyA9IHB0ZXBfdGVzdF9hbmRfY2xlYXJf eW91bmcodm1hLCBhZGRyZXNzLCBwdGVwKTsKPj4+PiAtCj4+Pj4gLSAgICAgaWYgKHlvdW5nKSB7 Cj4+Pj4gLSAgICAgICAgICAgICAvKgo+Pj4+IC0gICAgICAgICAgICAgICogV2UgY2FuIGVsaWRl IHRoZSB0cmFpbGluZyBEU0IgaGVyZSBzaW5jZSB0aGUgd29yc3QgdGhhdCBjYW4KPj4+PiAtICAg ICAgICAgICAgICAqIGhhcHBlbiBpcyB0aGF0IGEgQ1BVIGNvbnRpbnVlcyB0byB1c2UgdGhlIHlv dW5nIGVudHJ5IGluIGl0cwo+Pj4+IC0gICAgICAgICAgICAgICogVExCIGFuZCB3ZSBtaXN0YWtl bmx5IHJlY2xhaW0gdGhlIGFzc29jaWF0ZWQgcGFnZS4gVGhlCj4+Pj4gLSAgICAgICAgICAgICAg KiB3aW5kb3cgZm9yIHN1Y2ggYW4gZXZlbnQgaXMgYm91bmRlZCBieSB0aGUgbmV4dAo+Pj4+IC0g ICAgICAgICAgICAgICogY29udGV4dC1zd2l0Y2gsIHdoaWNoIHByb3ZpZGVzIGEgRFNCIHRvIGNv bXBsZXRlIHRoZSBUTEIKPj4+PiAtICAgICAgICAgICAgICAqIGludmFsaWRhdGlvbi4KPj4+PiAt ICAgICAgICAgICAgICAqLwo+Pj4+IC0gICAgICAgICAgICAgZmx1c2hfdGxiX3BhZ2Vfbm9zeW5j KHZtYSwgYWRkcmVzcyk7Cj4+Pj4gLSAgICAgfQo+Pj4+IC0KPj4+PiAtICAgICByZXR1cm4geW91 bmc7Cj4+Pj4gKyAgICAgLyoKPj4+PiArICAgICAgKiBUaGlzIGNvbW1lbnQgaXMgYm9ycm93ZWQg ZnJvbSB4ODYsIGJ1dCBhcHBsaWVzIGVxdWFsbHkgdG8gQVJNNjQ6Cj4+Pj4gKyAgICAgICoKPj4+ PiArICAgICAgKiBDbGVhcmluZyB0aGUgYWNjZXNzZWQgYml0IHdpdGhvdXQgYSBUTEIgZmx1c2gg ZG9lc24ndCBjYXVzZQo+Pj4+ICsgICAgICAqIGRhdGEgY29ycnVwdGlvbi4gWyBJdCBjb3VsZCBj YXVzZSBpbmNvcnJlY3QgcGFnZSBhZ2luZyBhbmQKPj4+PiArICAgICAgKiB0aGUgKG1pc3Rha2Vu KSByZWNsYWltIG9mIGhvdCBwYWdlcywgYnV0IHRoZSBjaGFuY2Ugb2YgdGhhdAo+Pj4+ICsgICAg ICAqIHNob3VsZCBiZSByZWxhdGl2ZWx5IGxvdy4gXQo+Pj4+ICsgICAgICAqCj4+Pj4gKyAgICAg ICogU28gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gZG9uJ3QgZmx1c2ggdGhlIFRMQiB3 aGVuCj4+Pj4gKyAgICAgICogY2xlYXJpbmcgdGhlIGFjY2Vzc2VkIGJpdCwgaXQgd2lsbCBldmVu dHVhbGx5IGJlIGZsdXNoZWQgYnkKPj4+PiArICAgICAgKiBhIGNvbnRleHQgc3dpdGNoIG9yIGEg Vk0gb3BlcmF0aW9uIGFueXdheS4gWyBJbiB0aGUgcmFyZQo+Pj4+ICsgICAgICAqIGV2ZW50IG9m IGl0IG5vdCBnZXR0aW5nIGZsdXNoZWQgZm9yIGEgbG9uZyB0aW1lIHRoZSBkZWxheQo+Pj4+ICsg ICAgICAqIHNob3VsZG4ndCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgdGhlcmUncyBubyByZWFsIG1l bW9yeQo+Pj4+ICsgICAgICAqIHByZXNzdXJlIGZvciBzd2Fwb3V0IHRvIHJlYWN0IHRvLiBdCj4+ Pj4gKyAgICAgICovCj4+Pj4gKyAgICAgcmV0dXJuIHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmco dm1hLCBhZGRyZXNzLCBwdGVwKTsKPj4+PiAgIH0KPj4+Pgo+Pj4+ICAgI2lmZGVmIENPTkZJR19U UkFOU1BBUkVOVF9IVUdFUEFHRQo+Pj4KPj4+IFRoZXJlIGFyZSB0aHJlZSBkaXN0aW5jdCBjb25j ZXJucyBoZXJlCj4+Pgo+Pj4gMSkgV2hhdCBhcmUgdGhlIGNoYW5jZXMgb2YgdGhpcyBtaXNsZWFk aW5nIGV4aXN0aW5nIGhvdCBwYWdlIHJlY2xhaW0gcHJvY2Vzcwo+Pj4gMikgSG93IHNlY29uZGFy eSBNTVUgc3VjaCBhcyBTTU1VIGFkYXB0IHRvIGNoYW5nZSBpbiBtYXBwaW5ncyB3aXRob3V0IGEg Zmx1c2gKPj4+IDMpIENvdWxkIHRoaXMgYnJlYWsgdGhlIGFyY2hpdGVjdHVyZSBydWxlIHJlcXVp cmluZyBhIFRMQiBmbHVzaCBhZnRlciBhY2Nlc3MKPj4+ICAgICBiaXQgY2xlYXIgb24gYSBwYWdl IHRhYmxlIGVudHJ5Cj4+Cj4+IEluIHRlcm1zIG9mIGFsbCBvZiBhYm92ZSBjb25jZXJucywgIHRo b3VnaCAyIGlzIGRpZmZlcmVudCwgd2hpY2ggaXMgYW4KPj4gaXNzdWUgYmV0d2Vlbgo+PiBjcHUg YW5kIG5vbi1jcHUsCj4+IGkgZmVlbCBrZXJuZWwgaGFzIGFjdHVhbGx5IGRyb3BwZWQgdGxiIGZs dXNoIGF0IGxlYXN0IGZvciBtZ2xydSwgdGhlcmUKPj4gaXMgbm8gZmx1c2ggaW4KPj4gbHJ1X2dl bl9sb29rX2Fyb3VuZCgpLAo+Pgo+PiBzdGF0aWMgYm9vbCBmb2xpb19yZWZlcmVuY2VkX29uZShz dHJ1Y3QgZm9saW8gKmZvbGlvLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHZvaWQgKmFyZykKPj4gewo+PiAgICAg ICAgICAuLi4KPj4KPj4gICAgICAgICAgICAgICAgICBpZiAocHZtdy5wdGUpIHsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChscnVfZ2VuX2VuYWJsZWQoKSAmJgo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0ZV95b3VuZyhwdGVwX2dldChwdm13LnB0ZSkpKSB7Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxydV9nZW5fbG9va19hcm91bmQoJnB2bXcp Owo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkKys7Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAocHRlcF9jbGVhcl9mbHVzaF95b3VuZ19ub3RpZnkodm1hLCBhZGRyZXNzLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHZtdy5wdGUpKQo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkKys7Cj4+ICAgICAgICAg ICAgICAgICAgfQo+Pgo+PiAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4gfQo+Pgo+PiBhbmQgc28g aXMgaW4gd2Fsa19wdGVfcmFuZ2UoKSBvZiB2bXNjYW4uICBsaW51eCBoYXMgYmVlbiBzdXJ2aXZp bmcgd2l0aAo+PiBhbGwgYWJvdmUgY29uY2VybnMgZm9yIGEgd2hpbGUsIGJlbGlldmluZyBpdCBv ciBub3QgOi0pCj4gCj4gQWx0aG91Z2ggdGhlIGZpcnN0IHR3byBjb25jZXJucyBjb3VsZCBiZSB3 b3JrZWQgdXBvbiBpbiB0aGUgU1csIGtlcm5lbCBzdXJ2aXZpbmcKPiBhZnRlciBicmVha2luZyBh cmNoIHJ1bGVzIGV4cGxpY2l0bHkgaXMgbm90IGEgY29ycmVjdCBzdGF0ZSB0byBiZSBpbiBJTUhP LgoKTm90IHN1cmUgd2hhdCdzIHRoZSBtZWFuaW5nIG9mICJub3QgYSBjb3JyZWN0IHN0YXRlIiwg YXQgbGVhc3Qgd2UgCihBbGliYWJhKSBoYXZlIG5vdCBmb3VuZCB0aGlzIGNhbiBjYXVzZSBhbnkg aXNzdWVzIHVudGlsIG5vdyB3aGVuIHVzaW5nIApNR0xSVSBvbiB4ODYgYW5kIEFSTTY0IHBsYXRm b3Jtcy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK