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 3DA6FC433EF for ; Tue, 19 Apr 2022 08:52:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350171AbiDSIzc (ORCPT ); Tue, 19 Apr 2022 04:55:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235265AbiDSIz3 (ORCPT ); Tue, 19 Apr 2022 04:55:29 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1EC44193EF for ; Tue, 19 Apr 2022 01:52:46 -0700 (PDT) Received: from kwepemi500024.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4KjHc014LhzfZDR; Tue, 19 Apr 2022 16:52:00 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi500024.china.huawei.com (7.221.188.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:43 +0800 Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:42 +0800 Message-ID: Date: Tue, 19 Apr 2022 16:52:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH -next v4 3/4] arm64: mm: add support for page table check To: Anshuman Khandual , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , Pasha Tatashin , Andrew Morton , Catalin Marinas , Will Deacon , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: , , , , Kefeng Wang , Guohanjun References: <20220418034444.520928-1-tongtiangen@huawei.com> <20220418034444.520928-4-tongtiangen@huawei.com> <1c314feb-cd78-2bb3-462e-4ea3cefe122e@arm.com> <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> From: Tong Tiangen In-Reply-To: <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2022/4/19 15:10, Anshuman Khandual 写道: > > > On 4/18/22 21:17, Tong Tiangen wrote: >> >> >> 在 2022/4/18 17:28, Anshuman Khandual 写道: >>> On 4/18/22 09:14, Tong Tiangen wrote: >>>> From: Kefeng Wang [...] >>> >>> Could you explain what was expected during pmdp_collapse_flush() which when >>> failed, triggered this BUG_ON() ? This counter seems to be page table check >>> specific, could it just go wrong ? I have not looked into the details about >>> page table check mechanism. >>> >>> - Anshuman >>> . >> >> Hi Anshuman: >> >> Thanks for your job. >> >> Let me briefly explain the principle of page table check(PTC). >> >> PTC introduces the following struct for page mapping type count: >> struct page_table_check { >>         atomic_t anon_map_count; >>         atomic_t file_map_count; >> }; >> This structure can be obtained by "lookup_page_ext(page)" > > > Right. > >> >> When page table entries are set(pud/pmd/pte), page_table_check_set()  is called to increase the page mapping count, Also check for errors (eg:if a page is used for anonymous mapping, then the page cannot be used for file mapping at the same time). >> >> When page table entries are clear(pud/pmd/pte), page_table_check_clear()  is called to decrease the page mapping count, Also check for errors. >> >> The error check rules are described in the following documents: Documentation/vm/page_table_check.rst > > Snippet from that document. > > +-------------------+-------------------+-------------------+------------------+ > | Current Mapping | New mapping | Permissions | Rule | > +===================+===================+===================+==================+ > | Anonymous | Anonymous | Read | Allow | > +-------------------+-------------------+-------------------+------------------+ > | Anonymous | Anonymous | Read / Write | Prohibit | > +-------------------+-------------------+-------------------+------------------+ > | Anonymous | Named | Any | Prohibit | > +-------------------+-------------------+-------------------+------------------+ > | Named | Anonymous | Any | Prohibit | > +-------------------+-------------------+-------------------+------------------+ > | Named | Named | Any | Allow | > +-------------------+-------------------+-------------------+------------------+ > > Does 'Named' refer to file mapping ? Also what does 'Prohibit' imply here ? The > check will call out a BUG_ON() in such cases ? Right, Named means file mapping, Prohibit here trigger BUG_ON. > > page_table_check_clear() > { > > if (anon) { > BUG_ON(atomic_read(&ptc->file_map_count)); > BUG_ON(atomic_dec_return(&ptc->anon_map_count) < 0); > } else { > BUG_ON(atomic_read(&ptc->anon_map_count)); > BUG_ON(atomic_dec_return(&ptc->file_map_count) < 0); > } > } > > So in the clear path, there are two checks > > - If the current mapping is Anon, file_map_count cannot be positive and other way > - Decrement the applicable counter ensuring that it does not turn negative > > page_table_check_set() > { > if (anon) { > BUG_ON(atomic_read(&ptc->file_map_count)); > BUG_ON(atomic_inc_return(&ptc->anon_map_count) > 1 && rw); > } else { > BUG_ON(atomic_read(&ptc->anon_map_count)); > BUG_ON(atomic_inc_return(&ptc->file_map_count) < 0); > } > } > > So in the set path, there are two checks > > - If the current mapping is anon, file_map_count cannot be positive and other way > - Anon mapping cannot be RW if the page has been mapped more than once > - But then why check for negative values for file_map_count after increment ? Check for negative after increment is logically OK and <=0 should be more reasonable. > > Is there any other checks, which this test ensures, that I might be missing ? The following checks are performed when page table entry are allocated/released: __page_table_check_zero() { BUG_ON(atomic_read(&ptc->anon_map_count)); BUG_ON(atomic_read(&ptc->file_map_count)); } > >> >> The setting and clearing of page table entries are symmetrical. > > This assumption should be true for any user accessible mapping, for this test to work ? Right, if not, here is BUG_ON. However, as Pasha said: "this being new on ARM64, it is possible that the bug is in PTC/khugepaged itself." > > Also why PUD_PAGE_SIZE/PMD_PAGE_SIZE are being used here instead of directly using > generic macros such as PUD_SIZE/PMD_SIZE ? Is there a specific reason ? I did code optimization for this, in patch 1/4 of this patchset: +#ifndef PMD_PAGE_SIZE +#define PMD_PAGE_SIZE PMD_SIZE +#endif + +#ifndef PUD_PAGE_SIZE +#define PUD_PAGE_SIZE PUD_SIZE +#endif Thank you. Tong. > >> >> Here __page_table_check_pmd_clear() trigger BUGON which indicates that the pmd entry file mapping count has become negative. >> >> I guess if PTC didn't detect this exception, would there have been any problems? > > I am looking into this, not sure for now. > . 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 B2B22C433F5 for ; Tue, 19 Apr 2022 08:53:16 +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=L9s1abnAFpwj4dW1iuRgKQZAr+4pma7bkFA5Y1iGgsc=; b=GqnDYlP53lttWH H5JmeI00qpfjGVz6EFpsxcJG1TXKPV3vckSFqapyi4yPbqlV+JNFdBB1Fg0EIISid2EDWyFfaDuhK o3Wwp4/x0BQWWzys1hkjPZdUlYv8LCC4zRgbJCOipFYz/pAQRN0qeqlQQ4nIgNTBZYbWKKmETcYvC hfUdvwsU+o+d9ny02TCgeIZgYv7OIPOz/eMRSoAaiSAQsnY8RxQR/ZZymFQsePZtFKm27wsqYg/mJ DUOQcHtq1T3NuC0pqr3FVuq4DfmF+N4zyUuTqs0Xt0WkS5xyjuGp92rMNswDrWIQmS2ry5SCUie5x a+9j2uh1Po6FQLhaIqGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngjbf-002Q3y-1n; Tue, 19 Apr 2022 08:53:07 +0000 Received: from szxga01-in.huawei.com ([45.249.212.187]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngjbR-002PxW-KU; Tue, 19 Apr 2022 08:52:55 +0000 Received: from kwepemi500024.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4KjHc014LhzfZDR; Tue, 19 Apr 2022 16:52:00 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi500024.china.huawei.com (7.221.188.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:43 +0800 Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:42 +0800 Message-ID: Date: Tue, 19 Apr 2022 16:52:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH -next v4 3/4] arm64: mm: add support for page table check To: Anshuman Khandual , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , Pasha Tatashin , Andrew Morton , Catalin Marinas , Will Deacon , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: , , , , Kefeng Wang , Guohanjun References: <20220418034444.520928-1-tongtiangen@huawei.com> <20220418034444.520928-4-tongtiangen@huawei.com> <1c314feb-cd78-2bb3-462e-4ea3cefe122e@arm.com> <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> From: Tong Tiangen In-Reply-To: <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220419_015254_064806_90229AFB X-CRM114-Status: GOOD ( 26.00 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org CgrlnKggMjAyMi80LzE5IDE1OjEwLCBBbnNodW1hbiBLaGFuZHVhbCDlhpnpgZM6Cj4gCj4gCj4g T24gNC8xOC8yMiAyMToxNywgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+Pgo+Pgo+PiDlnKggMjAyMi80 LzE4IDE3OjI4LCBBbnNodW1hbiBLaGFuZHVhbCDlhpnpgZM6Cj4+PiBPbiA0LzE4LzIyIDA5OjE0 LCBUb25nIFRpYW5nZW4gd3JvdGU6Cj4+Pj4gRnJvbTogS2VmZW5nIFdhbmcgPHdhbmdrZWZlbmcu d2FuZ0BodWF3ZWkuY29tPgpbLi4uXQo+Pj4KPj4+IENvdWxkIHlvdSBleHBsYWluIHdoYXQgd2Fz IGV4cGVjdGVkIGR1cmluZyBwbWRwX2NvbGxhcHNlX2ZsdXNoKCkgd2hpY2ggd2hlbgo+Pj4gZmFp bGVkLCB0cmlnZ2VyZWQgdGhpcyBCVUdfT04oKSA/IFRoaXMgY291bnRlciBzZWVtcyB0byBiZSBw YWdlIHRhYmxlIGNoZWNrCj4+PiBzcGVjaWZpYywgY291bGQgaXQganVzdCBnbyB3cm9uZyA/IEkg aGF2ZSBub3QgbG9va2VkIGludG8gdGhlIGRldGFpbHMgYWJvdXQKPj4+IHBhZ2UgdGFibGUgY2hl Y2sgbWVjaGFuaXNtLgo+Pj4KPj4+IC0gQW5zaHVtYW4KPj4+IC4KPj4KPj4gSGkgQW5zaHVtYW46 Cj4+Cj4+IFRoYW5rcyBmb3IgeW91ciBqb2IuCj4+Cj4+IExldCBtZSBicmllZmx5IGV4cGxhaW4g dGhlIHByaW5jaXBsZSBvZiBwYWdlIHRhYmxlIGNoZWNrKFBUQykuCj4+Cj4+IFBUQyBpbnRyb2R1 Y2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0IGZvciBwYWdlIG1hcHBpbmcgdHlwZSBjb3VudDoKPj4g c3RydWN0IHBhZ2VfdGFibGVfY2hlY2sgewo+PiAgwqDCoMKgwqDCoMKgwqAgYXRvbWljX3QgYW5v bl9tYXBfY291bnQ7Cj4+ICDCoMKgwqDCoMKgwqDCoCBhdG9taWNfdCBmaWxlX21hcF9jb3VudDsK Pj4gfTsKPj4gVGhpcyBzdHJ1Y3R1cmUgY2FuIGJlIG9idGFpbmVkIGJ5ICJsb29rdXBfcGFnZV9l eHQocGFnZSkiCj4gCj4gCj4gUmlnaHQuCj4gCj4+Cj4+IFdoZW4gcGFnZSB0YWJsZSBlbnRyaWVz IGFyZSBzZXQocHVkL3BtZC9wdGUpLCBwYWdlX3RhYmxlX2NoZWNrX3NldCgpwqAgaXMgY2FsbGVk IHRvIGluY3JlYXNlIHRoZSBwYWdlIG1hcHBpbmcgY291bnQsIEFsc28gY2hlY2sgZm9yIGVycm9y cyAoZWc6aWYgYSBwYWdlIGlzIHVzZWQgZm9yIGFub255bW91cyBtYXBwaW5nLCB0aGVuIHRoZSBw YWdlIGNhbm5vdCBiZSB1c2VkIGZvciBmaWxlIG1hcHBpbmcgYXQgdGhlIHNhbWUgdGltZSkuCj4+ Cj4+IFdoZW4gcGFnZSB0YWJsZSBlbnRyaWVzIGFyZSBjbGVhcihwdWQvcG1kL3B0ZSksIHBhZ2Vf dGFibGVfY2hlY2tfY2xlYXIoKSDCoGlzIGNhbGxlZCB0byBkZWNyZWFzZSB0aGUgcGFnZSBtYXBw aW5nIGNvdW50LCBBbHNvIGNoZWNrIGZvciBlcnJvcnMuCj4+Cj4+IFRoZSBlcnJvciBjaGVjayBy dWxlcyBhcmUgZGVzY3JpYmVkIGluIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnRzOiBEb2N1bWVudGF0 aW9uL3ZtL3BhZ2VfdGFibGVfY2hlY2sucnN0Cj4gCj4gU25pcHBldCBmcm9tIHRoYXQgZG9jdW1l bnQuCj4gCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSsKPiB8IEN1cnJlbnQgTWFwcGluZyAgIHwg TmV3IG1hcHBpbmcgICAgICAgfCBQZXJtaXNzaW9ucyAgICAgICB8IFJ1bGUgICAgICAgICAgICAg fAo+ICs9PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09 PT09PT09PSs9PT09PT09PT09PT09PT09PT0rCj4gfCBBbm9ueW1vdXMgICAgICAgICB8IEFub255 bW91cyAgICAgICAgIHwgUmVhZCAgICAgICAgICAgICAgfCBBbGxvdyAgICAgICAgICAgIHwKPiAr LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHwgQW5vbnltb3VzICAgICAgICAgfCBBbm9ueW1vdXMg ICAgICAgICB8IFJlYWQgLyBXcml0ZSAgICAgIHwgUHJvaGliaXQgICAgICAgICB8Cj4gKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSsKPiB8IEFub255bW91cyAgICAgICAgIHwgTmFtZWQgICAgICAgICAg ICAgfCBBbnkgICAgICAgICAgICAgICB8IFByb2hpYml0ICAgICAgICAgfAo+ICstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rCj4gfCBOYW1lZCAgICAgICAgICAgICB8IEFub255bW91cyAgICAgICAgIHwg QW55ICAgICAgICAgICAgICAgfCBQcm9oaWJpdCAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKwo+IHwgTmFtZWQgICAgICAgICAgICAgfCBOYW1lZCAgICAgICAgICAgICB8IEFueSAg ICAgICAgICAgICAgIHwgQWxsb3cgICAgICAgICAgICB8Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSsKPiAKPiBEb2VzICdOYW1lZCcgcmVmZXIgdG8gZmlsZSBtYXBwaW5nID8gQWxzbyB3aGF0IGRv ZXMgJ1Byb2hpYml0JyBpbXBseSBoZXJlID8gVGhlCj4gY2hlY2sgd2lsbCBjYWxsIG91dCBhIEJV R19PTigpIGluIHN1Y2ggY2FzZXMgPwoKUmlnaHTvvIwgTmFtZWQgbWVhbnMgZmlsZSBtYXBwaW5n LCAgUHJvaGliaXQgaGVyZSB0cmlnZ2VyIEJVR19PTi4KCj4gCj4gcGFnZV90YWJsZV9jaGVja19j bGVhcigpCj4gewo+IAo+ICAgICAgICAgICAgICAgICAgaWYgKGFub24pIHsKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVHX09OKGF0b21pY19yZWFkKCZwdGMtPmZpbGVfbWFwX2NvdW50KSk7 Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfZGVjX3JldHVybigmcHRj LT5hbm9uX21hcF9jb3VudCkgPCAwKTsKPiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfcmVhZCgmcHRjLT5hbm9uX21hcF9j b3VudCkpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX2RlY19yZXR1 cm4oJnB0Yy0+ZmlsZV9tYXBfY291bnQpIDwgMCk7Cj4gICAgICAgICAgICAgICAgICB9Cj4gfQo+ IAo+IFNvIGluIHRoZSBjbGVhciBwYXRoLCB0aGVyZSBhcmUgdHdvIGNoZWNrcwo+IAo+IC0gSWYg dGhlIGN1cnJlbnQgbWFwcGluZyBpcyBBbm9uLCBmaWxlX21hcF9jb3VudCBjYW5ub3QgYmUgcG9z aXRpdmUgYW5kIG90aGVyIHdheQo+IC0gRGVjcmVtZW50IHRoZSBhcHBsaWNhYmxlIGNvdW50ZXIg ZW5zdXJpbmcgdGhhdCBpdCBkb2VzIG5vdCB0dXJuIG5lZ2F0aXZlCj4gCj4gcGFnZV90YWJsZV9j aGVja19zZXQoKQo+IHsKPiAgICAgICAgICAgICAgICAgIGlmIChhbm9uKSB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfcmVhZCgmcHRjLT5maWxlX21hcF9jb3VudCkp Owo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX2luY19yZXR1cm4oJnB0 Yy0+YW5vbl9tYXBfY291bnQpID4gMSAmJiBydyk7Cj4gICAgICAgICAgICAgICAgICB9IGVsc2Ug ewo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX3JlYWQoJnB0Yy0+YW5v bl9tYXBfY291bnQpKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgQlVHX09OKGF0b21pY19p bmNfcmV0dXJuKCZwdGMtPmZpbGVfbWFwX2NvdW50KSA8IDApOwo+ICAgICAgICAgICAgICAgICAg fQo+IH0KPiAKPiBTbyBpbiB0aGUgc2V0IHBhdGgsIHRoZXJlIGFyZSB0d28gY2hlY2tzCj4gCj4g LSBJZiB0aGUgY3VycmVudCBtYXBwaW5nIGlzIGFub24sIGZpbGVfbWFwX2NvdW50IGNhbm5vdCBi ZSBwb3NpdGl2ZSBhbmQgb3RoZXIgd2F5Cj4gLSBBbm9uIG1hcHBpbmcgY2Fubm90IGJlIFJXIGlm IHRoZSBwYWdlIGhhcyBiZWVuIG1hcHBlZCBtb3JlIHRoYW4gb25jZQo+IC0gQnV0IHRoZW4gd2h5 IGNoZWNrIGZvciBuZWdhdGl2ZSB2YWx1ZXMgZm9yIGZpbGVfbWFwX2NvdW50IGFmdGVyIGluY3Jl bWVudCA/CgpDaGVjayBmb3IgbmVnYXRpdmUgYWZ0ZXIgaW5jcmVtZW50IGlzIGxvZ2ljYWxseSBP SyBhbmQgPD0wIHNob3VsZCBiZSAKbW9yZSByZWFzb25hYmxlLgoKPiAKPiBJcyB0aGVyZSBhbnkg b3RoZXIgY2hlY2tzLCB3aGljaCB0aGlzIHRlc3QgZW5zdXJlcywgdGhhdCBJIG1pZ2h0IGJlIG1p c3NpbmcgPwoKVGhlIGZvbGxvd2luZyBjaGVja3MgYXJlIHBlcmZvcm1lZCB3aGVuIHBhZ2UgdGFi bGUgZW50cnkgYXJlIAphbGxvY2F0ZWQvcmVsZWFzZWQ6Cl9fcGFnZV90YWJsZV9jaGVja196ZXJv KCkKewoJQlVHX09OKGF0b21pY19yZWFkKCZwdGMtPmFub25fbWFwX2NvdW50KSk7CglCVUdfT04o YXRvbWljX3JlYWQoJnB0Yy0+ZmlsZV9tYXBfY291bnQpKTsKfQoKPiAKPj4KPj4gVGhlIHNldHRp bmcgYW5kIGNsZWFyaW5nIG9mIHBhZ2UgdGFibGUgZW50cmllcyBhcmUgc3ltbWV0cmljYWwuCj4g Cj4gVGhpcyBhc3N1bXB0aW9uIHNob3VsZCBiZSB0cnVlIGZvciBhbnkgdXNlciBhY2Nlc3NpYmxl IG1hcHBpbmcsIGZvciB0aGlzIHRlc3QgdG8gd29yayA/CgpSaWdodCwgaWYgbm90LCBoZXJlIGlz IEJVR19PTi4KCkhvd2V2ZXIsIGFzIFBhc2hhIHNhaWQ6CiJ0aGlzIGJlaW5nIG5ldyBvbiBBUk02 NCwgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgYnVnIGlzIGluIApQVEMva2h1Z2VwYWdlZCBpdHNl bGYuIgoKPiAKPiBBbHNvIHdoeSBQVURfUEFHRV9TSVpFL1BNRF9QQUdFX1NJWkUgYXJlIGJlaW5n IHVzZWQgaGVyZSBpbnN0ZWFkIG9mIGRpcmVjdGx5IHVzaW5nCj4gZ2VuZXJpYyBtYWNyb3Mgc3Vj aCBhcyBQVURfU0laRS9QTURfU0laRSA/IElzIHRoZXJlIGEgc3BlY2lmaWMgcmVhc29uID8KCkkg ZGlkIGNvZGUgb3B0aW1pemF0aW9uIGZvciB0aGlzLCBpbiBwYXRjaCAxLzQgb2YgdGhpcyBwYXRj aHNldDoKCisjaWZuZGVmIFBNRF9QQUdFX1NJWkUKKyNkZWZpbmUgUE1EX1BBR0VfU0laRQlQTURf U0laRQorI2VuZGlmCisKKyNpZm5kZWYgUFVEX1BBR0VfU0laRQorI2RlZmluZSBQVURfUEFHRV9T SVpFCVBVRF9TSVpFCisjZW5kaWYKCgpUaGFuayB5b3UuClRvbmcuCgo+IAo+Pgo+PiBIZXJlIF9f cGFnZV90YWJsZV9jaGVja19wbWRfY2xlYXIoKSB0cmlnZ2VyIEJVR09OIHdoaWNoIGluZGljYXRl cyB0aGF0IHRoZSBwbWQgZW50cnkgZmlsZSBtYXBwaW5nIGNvdW50IGhhcyBiZWNvbWUgbmVnYXRp dmUuCj4+Cj4+IEkgZ3Vlc3MgaWYgUFRDIGRpZG4ndCBkZXRlY3QgdGhpcyBleGNlcHRpb24sIHdv dWxkIHRoZXJlIGhhdmUgYmVlbiBhbnkgcHJvYmxlbXM/Cj4gCj4gSSBhbSBsb29raW5nIGludG8g dGhpcywgbm90IHN1cmUgZm9yIG5vdy4KPiAuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 37746C433F5 for ; Tue, 19 Apr 2022 08:54:03 +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=GmakDfzeBGVCS+vWSaS1CiEJ6gueGXw2qoouJ0wUoJs=; b=ldSQC1XjENLypQ TfyiBMEBmA1fArWIzipXyvJsdtHoWa/bkFQWZJ9rXaH4sUfitkDYw4NSVQhP1LZJphMbn91tdcMRZ AYdqqZpYp3qrooddP2qq6UFPEATLQB4Pm2+W7PK0wcOt74pR84VIubVNCaZ90jME+upfI0B9hZCiC 5JunKaCyVpyj8/aAIidF14Lz63boDSDrv1XlhaT3pAJMt/R7+bjjIOWZS1sCx1CfEZATd0ddujOPQ Xw1O/H7qd6b7idsPiX+Hy1KNUYF1Ijo+uSB3135fIgQpkhq5eaQ1sGMy2bZvt86IllN6vuJ0HqZCs tVtVdsGAqTIrSQ6KtvYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngjbW-002Q1a-08; Tue, 19 Apr 2022 08:52:58 +0000 Received: from szxga01-in.huawei.com ([45.249.212.187]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngjbR-002PxW-KU; Tue, 19 Apr 2022 08:52:55 +0000 Received: from kwepemi500024.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4KjHc014LhzfZDR; Tue, 19 Apr 2022 16:52:00 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi500024.china.huawei.com (7.221.188.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:43 +0800 Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 19 Apr 2022 16:52:42 +0800 Message-ID: Date: Tue, 19 Apr 2022 16:52:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH -next v4 3/4] arm64: mm: add support for page table check To: Anshuman Khandual , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , Pasha Tatashin , Andrew Morton , Catalin Marinas , Will Deacon , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: , , , , Kefeng Wang , Guohanjun References: <20220418034444.520928-1-tongtiangen@huawei.com> <20220418034444.520928-4-tongtiangen@huawei.com> <1c314feb-cd78-2bb3-462e-4ea3cefe122e@arm.com> <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> From: Tong Tiangen In-Reply-To: <88a70fa7-b1c8-6f5c-1018-df673949785c@arm.com> X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220419_015254_064806_90229AFB X-CRM114-Status: GOOD ( 26.00 ) 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 CgrlnKggMjAyMi80LzE5IDE1OjEwLCBBbnNodW1hbiBLaGFuZHVhbCDlhpnpgZM6Cj4gCj4gCj4g T24gNC8xOC8yMiAyMToxNywgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+Pgo+Pgo+PiDlnKggMjAyMi80 LzE4IDE3OjI4LCBBbnNodW1hbiBLaGFuZHVhbCDlhpnpgZM6Cj4+PiBPbiA0LzE4LzIyIDA5OjE0 LCBUb25nIFRpYW5nZW4gd3JvdGU6Cj4+Pj4gRnJvbTogS2VmZW5nIFdhbmcgPHdhbmdrZWZlbmcu d2FuZ0BodWF3ZWkuY29tPgpbLi4uXQo+Pj4KPj4+IENvdWxkIHlvdSBleHBsYWluIHdoYXQgd2Fz IGV4cGVjdGVkIGR1cmluZyBwbWRwX2NvbGxhcHNlX2ZsdXNoKCkgd2hpY2ggd2hlbgo+Pj4gZmFp bGVkLCB0cmlnZ2VyZWQgdGhpcyBCVUdfT04oKSA/IFRoaXMgY291bnRlciBzZWVtcyB0byBiZSBw YWdlIHRhYmxlIGNoZWNrCj4+PiBzcGVjaWZpYywgY291bGQgaXQganVzdCBnbyB3cm9uZyA/IEkg aGF2ZSBub3QgbG9va2VkIGludG8gdGhlIGRldGFpbHMgYWJvdXQKPj4+IHBhZ2UgdGFibGUgY2hl Y2sgbWVjaGFuaXNtLgo+Pj4KPj4+IC0gQW5zaHVtYW4KPj4+IC4KPj4KPj4gSGkgQW5zaHVtYW46 Cj4+Cj4+IFRoYW5rcyBmb3IgeW91ciBqb2IuCj4+Cj4+IExldCBtZSBicmllZmx5IGV4cGxhaW4g dGhlIHByaW5jaXBsZSBvZiBwYWdlIHRhYmxlIGNoZWNrKFBUQykuCj4+Cj4+IFBUQyBpbnRyb2R1 Y2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0IGZvciBwYWdlIG1hcHBpbmcgdHlwZSBjb3VudDoKPj4g c3RydWN0IHBhZ2VfdGFibGVfY2hlY2sgewo+PiAgwqDCoMKgwqDCoMKgwqAgYXRvbWljX3QgYW5v bl9tYXBfY291bnQ7Cj4+ICDCoMKgwqDCoMKgwqDCoCBhdG9taWNfdCBmaWxlX21hcF9jb3VudDsK Pj4gfTsKPj4gVGhpcyBzdHJ1Y3R1cmUgY2FuIGJlIG9idGFpbmVkIGJ5ICJsb29rdXBfcGFnZV9l eHQocGFnZSkiCj4gCj4gCj4gUmlnaHQuCj4gCj4+Cj4+IFdoZW4gcGFnZSB0YWJsZSBlbnRyaWVz IGFyZSBzZXQocHVkL3BtZC9wdGUpLCBwYWdlX3RhYmxlX2NoZWNrX3NldCgpwqAgaXMgY2FsbGVk IHRvIGluY3JlYXNlIHRoZSBwYWdlIG1hcHBpbmcgY291bnQsIEFsc28gY2hlY2sgZm9yIGVycm9y cyAoZWc6aWYgYSBwYWdlIGlzIHVzZWQgZm9yIGFub255bW91cyBtYXBwaW5nLCB0aGVuIHRoZSBw YWdlIGNhbm5vdCBiZSB1c2VkIGZvciBmaWxlIG1hcHBpbmcgYXQgdGhlIHNhbWUgdGltZSkuCj4+ Cj4+IFdoZW4gcGFnZSB0YWJsZSBlbnRyaWVzIGFyZSBjbGVhcihwdWQvcG1kL3B0ZSksIHBhZ2Vf dGFibGVfY2hlY2tfY2xlYXIoKSDCoGlzIGNhbGxlZCB0byBkZWNyZWFzZSB0aGUgcGFnZSBtYXBw aW5nIGNvdW50LCBBbHNvIGNoZWNrIGZvciBlcnJvcnMuCj4+Cj4+IFRoZSBlcnJvciBjaGVjayBy dWxlcyBhcmUgZGVzY3JpYmVkIGluIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnRzOiBEb2N1bWVudGF0 aW9uL3ZtL3BhZ2VfdGFibGVfY2hlY2sucnN0Cj4gCj4gU25pcHBldCBmcm9tIHRoYXQgZG9jdW1l bnQuCj4gCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSsKPiB8IEN1cnJlbnQgTWFwcGluZyAgIHwg TmV3IG1hcHBpbmcgICAgICAgfCBQZXJtaXNzaW9ucyAgICAgICB8IFJ1bGUgICAgICAgICAgICAg fAo+ICs9PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09 PT09PT09PSs9PT09PT09PT09PT09PT09PT0rCj4gfCBBbm9ueW1vdXMgICAgICAgICB8IEFub255 bW91cyAgICAgICAgIHwgUmVhZCAgICAgICAgICAgICAgfCBBbGxvdyAgICAgICAgICAgIHwKPiAr LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHwgQW5vbnltb3VzICAgICAgICAgfCBBbm9ueW1vdXMg ICAgICAgICB8IFJlYWQgLyBXcml0ZSAgICAgIHwgUHJvaGliaXQgICAgICAgICB8Cj4gKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSsKPiB8IEFub255bW91cyAgICAgICAgIHwgTmFtZWQgICAgICAgICAg ICAgfCBBbnkgICAgICAgICAgICAgICB8IFByb2hpYml0ICAgICAgICAgfAo+ICstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rCj4gfCBOYW1lZCAgICAgICAgICAgICB8IEFub255bW91cyAgICAgICAgIHwg QW55ICAgICAgICAgICAgICAgfCBQcm9oaWJpdCAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKwo+IHwgTmFtZWQgICAgICAgICAgICAgfCBOYW1lZCAgICAgICAgICAgICB8IEFueSAg ICAgICAgICAgICAgIHwgQWxsb3cgICAgICAgICAgICB8Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSsKPiAKPiBEb2VzICdOYW1lZCcgcmVmZXIgdG8gZmlsZSBtYXBwaW5nID8gQWxzbyB3aGF0IGRv ZXMgJ1Byb2hpYml0JyBpbXBseSBoZXJlID8gVGhlCj4gY2hlY2sgd2lsbCBjYWxsIG91dCBhIEJV R19PTigpIGluIHN1Y2ggY2FzZXMgPwoKUmlnaHTvvIwgTmFtZWQgbWVhbnMgZmlsZSBtYXBwaW5n LCAgUHJvaGliaXQgaGVyZSB0cmlnZ2VyIEJVR19PTi4KCj4gCj4gcGFnZV90YWJsZV9jaGVja19j bGVhcigpCj4gewo+IAo+ICAgICAgICAgICAgICAgICAgaWYgKGFub24pIHsKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVHX09OKGF0b21pY19yZWFkKCZwdGMtPmZpbGVfbWFwX2NvdW50KSk7 Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfZGVjX3JldHVybigmcHRj LT5hbm9uX21hcF9jb3VudCkgPCAwKTsKPiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfcmVhZCgmcHRjLT5hbm9uX21hcF9j b3VudCkpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX2RlY19yZXR1 cm4oJnB0Yy0+ZmlsZV9tYXBfY291bnQpIDwgMCk7Cj4gICAgICAgICAgICAgICAgICB9Cj4gfQo+ IAo+IFNvIGluIHRoZSBjbGVhciBwYXRoLCB0aGVyZSBhcmUgdHdvIGNoZWNrcwo+IAo+IC0gSWYg dGhlIGN1cnJlbnQgbWFwcGluZyBpcyBBbm9uLCBmaWxlX21hcF9jb3VudCBjYW5ub3QgYmUgcG9z aXRpdmUgYW5kIG90aGVyIHdheQo+IC0gRGVjcmVtZW50IHRoZSBhcHBsaWNhYmxlIGNvdW50ZXIg ZW5zdXJpbmcgdGhhdCBpdCBkb2VzIG5vdCB0dXJuIG5lZ2F0aXZlCj4gCj4gcGFnZV90YWJsZV9j aGVja19zZXQoKQo+IHsKPiAgICAgICAgICAgICAgICAgIGlmIChhbm9uKSB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgIEJVR19PTihhdG9taWNfcmVhZCgmcHRjLT5maWxlX21hcF9jb3VudCkp Owo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX2luY19yZXR1cm4oJnB0 Yy0+YW5vbl9tYXBfY291bnQpID4gMSAmJiBydyk7Cj4gICAgICAgICAgICAgICAgICB9IGVsc2Ug ewo+ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUdfT04oYXRvbWljX3JlYWQoJnB0Yy0+YW5v bl9tYXBfY291bnQpKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgQlVHX09OKGF0b21pY19p bmNfcmV0dXJuKCZwdGMtPmZpbGVfbWFwX2NvdW50KSA8IDApOwo+ICAgICAgICAgICAgICAgICAg fQo+IH0KPiAKPiBTbyBpbiB0aGUgc2V0IHBhdGgsIHRoZXJlIGFyZSB0d28gY2hlY2tzCj4gCj4g LSBJZiB0aGUgY3VycmVudCBtYXBwaW5nIGlzIGFub24sIGZpbGVfbWFwX2NvdW50IGNhbm5vdCBi ZSBwb3NpdGl2ZSBhbmQgb3RoZXIgd2F5Cj4gLSBBbm9uIG1hcHBpbmcgY2Fubm90IGJlIFJXIGlm IHRoZSBwYWdlIGhhcyBiZWVuIG1hcHBlZCBtb3JlIHRoYW4gb25jZQo+IC0gQnV0IHRoZW4gd2h5 IGNoZWNrIGZvciBuZWdhdGl2ZSB2YWx1ZXMgZm9yIGZpbGVfbWFwX2NvdW50IGFmdGVyIGluY3Jl bWVudCA/CgpDaGVjayBmb3IgbmVnYXRpdmUgYWZ0ZXIgaW5jcmVtZW50IGlzIGxvZ2ljYWxseSBP SyBhbmQgPD0wIHNob3VsZCBiZSAKbW9yZSByZWFzb25hYmxlLgoKPiAKPiBJcyB0aGVyZSBhbnkg b3RoZXIgY2hlY2tzLCB3aGljaCB0aGlzIHRlc3QgZW5zdXJlcywgdGhhdCBJIG1pZ2h0IGJlIG1p c3NpbmcgPwoKVGhlIGZvbGxvd2luZyBjaGVja3MgYXJlIHBlcmZvcm1lZCB3aGVuIHBhZ2UgdGFi bGUgZW50cnkgYXJlIAphbGxvY2F0ZWQvcmVsZWFzZWQ6Cl9fcGFnZV90YWJsZV9jaGVja196ZXJv KCkKewoJQlVHX09OKGF0b21pY19yZWFkKCZwdGMtPmFub25fbWFwX2NvdW50KSk7CglCVUdfT04o YXRvbWljX3JlYWQoJnB0Yy0+ZmlsZV9tYXBfY291bnQpKTsKfQoKPiAKPj4KPj4gVGhlIHNldHRp bmcgYW5kIGNsZWFyaW5nIG9mIHBhZ2UgdGFibGUgZW50cmllcyBhcmUgc3ltbWV0cmljYWwuCj4g Cj4gVGhpcyBhc3N1bXB0aW9uIHNob3VsZCBiZSB0cnVlIGZvciBhbnkgdXNlciBhY2Nlc3NpYmxl IG1hcHBpbmcsIGZvciB0aGlzIHRlc3QgdG8gd29yayA/CgpSaWdodCwgaWYgbm90LCBoZXJlIGlz IEJVR19PTi4KCkhvd2V2ZXIsIGFzIFBhc2hhIHNhaWQ6CiJ0aGlzIGJlaW5nIG5ldyBvbiBBUk02 NCwgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgYnVnIGlzIGluIApQVEMva2h1Z2VwYWdlZCBpdHNl bGYuIgoKPiAKPiBBbHNvIHdoeSBQVURfUEFHRV9TSVpFL1BNRF9QQUdFX1NJWkUgYXJlIGJlaW5n IHVzZWQgaGVyZSBpbnN0ZWFkIG9mIGRpcmVjdGx5IHVzaW5nCj4gZ2VuZXJpYyBtYWNyb3Mgc3Vj aCBhcyBQVURfU0laRS9QTURfU0laRSA/IElzIHRoZXJlIGEgc3BlY2lmaWMgcmVhc29uID8KCkkg ZGlkIGNvZGUgb3B0aW1pemF0aW9uIGZvciB0aGlzLCBpbiBwYXRjaCAxLzQgb2YgdGhpcyBwYXRj aHNldDoKCisjaWZuZGVmIFBNRF9QQUdFX1NJWkUKKyNkZWZpbmUgUE1EX1BBR0VfU0laRQlQTURf U0laRQorI2VuZGlmCisKKyNpZm5kZWYgUFVEX1BBR0VfU0laRQorI2RlZmluZSBQVURfUEFHRV9T SVpFCVBVRF9TSVpFCisjZW5kaWYKCgpUaGFuayB5b3UuClRvbmcuCgo+IAo+Pgo+PiBIZXJlIF9f cGFnZV90YWJsZV9jaGVja19wbWRfY2xlYXIoKSB0cmlnZ2VyIEJVR09OIHdoaWNoIGluZGljYXRl cyB0aGF0IHRoZSBwbWQgZW50cnkgZmlsZSBtYXBwaW5nIGNvdW50IGhhcyBiZWNvbWUgbmVnYXRp dmUuCj4+Cj4+IEkgZ3Vlc3MgaWYgUFRDIGRpZG4ndCBkZXRlY3QgdGhpcyBleGNlcHRpb24sIHdv dWxkIHRoZXJlIGhhdmUgYmVlbiBhbnkgcHJvYmxlbXM/Cj4gCj4gSSBhbSBsb29raW5nIGludG8g dGhpcywgbm90IHN1cmUgZm9yIG5vdy4KPiAuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==