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=-6.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no 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 924FBC433ED for ; Sun, 9 May 2021 05:59:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 727B561364 for ; Sun, 9 May 2021 05:59:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229670AbhEIGAm (ORCPT ); Sun, 9 May 2021 02:00:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:35890 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229453AbhEIGAl (ORCPT ); Sun, 9 May 2021 02:00:41 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1CEF561364; Sun, 9 May 2021 05:59:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620539978; bh=F9gqyGBpHvA5BP4VIejNuaHDQi9t//ZqzxoUtXHZIBY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Pg6c3El7f8wTosM1GHBA2Kmlc0+0eBs2evwd1DCes38mEsljDvr4GOET2y7BDPi0c L2AUKUVe8Iy2L5FFC5mrYAfumqdKP09p+LYX8GA0QrfcCG6SN2NVPnHW4FkETfwzXX OR3Qp/nyQ4g733GxrKLB8kyAuq5GPxWaiUDePC9D/O/kDMRLzPNqsWZtMU2Cqwn5Rw 2nTiBom6NZz7a/ETXo2sLS0lKFixn2K8Mu4aN96x7VubtFTIeTEtPnADkFRASjesAp 7t6tPQykwNdJNYoLm8iRRHsRPnasprnsnSIhY4MIIv9DRs0McBHwIOWYK7WzOwZccl FvFfB99NMgyig== Date: Sun, 9 May 2021 08:59:29 +0300 From: Mike Rapoport To: Kefeng Wang Cc: David Hildenbrand , linux-arm-kernel@lists.infradead.org, Andrew Morton , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> <24b37c01-fc75-d459-6e61-d67e8f0cf043@redhat.com> <82cfbb7f-dd4f-12d8-dc76-847f06172200@huawei.com> <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 07, 2021 at 08:34:52PM +0800, Kefeng Wang wrote: > > > On 2021/5/7 18:30, Mike Rapoport wrote: > > On Fri, May 07, 2021 at 03:17:08PM +0800, Kefeng Wang wrote: > > > > > > On 2021/5/6 20:47, Kefeng Wang wrote: > > > > > > > > > > > > no, the CONFIG_ARM_LPAE is not set, and yes with same panic at > > > > > > > > move_freepages at > > > > > > > > > > > > > > > > start_pfn/end_pfn [de600, de7ff], [de600000, de7ff000] > > > > > > > > :  pfn =de600, page > > > > > > > > =ef3cc000, page-flags = ffffffff,  pfn2phy = de600000 > > > > > > > > > > > > > > > > > > __free_memory_core, range: 0xb0200000 - > > > > > > > > > > 0xc0000000, pfn: b0200 - b0200 > > > > > > > > > > __free_memory_core, range: 0xcc000000 - > > > > > > > > > > 0xdca00000, pfn: cc000 - b0200 > > > > > > > > > > __free_memory_core, range: 0xde700000 - > > > > > > > > > > 0xdea00000, pfn: de700 - b0200 > > > > > > > > > > > > > > Hmm, [de600, de7ff] is not added to the free lists which is > > > > > > > correct. But > > > > > > > then it's unclear how the page for de600 gets to move_freepages()... > > > > > > > > > > > > > > Can't say I have any bright ideas to try here... > > > > > > > > > > > > Are we missing some checks (e.g., PageReserved()) that > > > > > > pfn_valid_within() > > > > > > would have "caught" before? > > > > > > > > > > Unless I'm missing something the crash happens in __rmqueue_fallback(): > > > > > > > > > > do_steal: > > > > >     page = get_page_from_free_area(area, fallback_mt); > > > > > > > > > >     steal_suitable_fallback(zone, page, alloc_flags, start_migratetype, > > > > >                                 can_steal); > > > > >         -> move_freepages() > > > > >             -> BUG() > > > > > > > > > > So a page from free area should be sane as the freed range was never > > > > > added > > > > > it to the free lists. > > > > > > > > Sorry for the late response due to the vacation. > > > > > > > > The pfn in range [de600, de7ff] won't be added into the free lists via > > > > __free_memory_core(), but the pfn could be added into freelists via > > > > free_highmem_page() > > > > > > > > I add some debug[1] in add_to_free_list(), we could see the calltrace > > > > > > > > free_highpages, range_pfn [b0200, c0000], range_addr [b0200000, c0000000] > > > > free_highpages, range_pfn [cc000, dca00], range_addr [cc000000, dca00000] > > > > free_highpages, range_pfn [de700, dea00], range_addr [de700000, dea00000] > > > > add_to_free_list, ===> pfn = de700 > > > > ------------[ cut here ]------------ > > > > WARNING: CPU: 0 PID: 0 at mm/page_alloc.c:900 add_to_free_list+0x8c/0xec > > > > pfn = de700 > > > > Modules linked in: > > > > CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.0+ #48 > > > > Hardware name: Hisilicon A9 > > > > [] (show_stack) from [] (dump_stack+0x9c/0xc0) > > > > [] (dump_stack) from [] (__warn+0xc0/0xec) > > > > [] (__warn) from [] (warn_slowpath_fmt+0x74/0xa4) > > > > [] (warn_slowpath_fmt) from [] > > > > (add_to_free_list+0x8c/0xec) > > > > [] (add_to_free_list) from [] > > > > (free_pcppages_bulk+0x200/0x278) > > > > [] (free_pcppages_bulk) from [] > > > > (free_unref_page+0x58/0x68) > > > > [] (free_unref_page) from [] > > > > (free_highmem_page+0xc/0x50) > > > > [] (free_highmem_page) from [] (mem_init+0x21c/0x254) > > > > [] (mem_init) from [] (start_kernel+0x258/0x5c0) > > > > [] (start_kernel) from [<00000000>] (0x0) > > > > > > > > so any idea? > > > > > > If pfn = 0xde700, due to the pageblock_nr_pages = 0x200, then the > > > start_pfn,end_pfn passed to move_freepages() will be [de600, de7ff], > > > but the range of [de600,de700] without ‘struct page' will lead to > > > this panic when pfn_valid_within not enabled if no HOLES_IN_ZONE, > > > and the same issue will occurred in isolate_freepages_block(), maybe > > > > I think your analysis is correct except one minor detail. With the #ifdef > > fix I've proposed earlieri [1] the memmap for [0xde600, 0xde700] should not > > be freed so there should be a struct page. Did you check what parts of the > > memmap are actually freed with this patch applied? > > Would you get a panic if you add > > > > dump_page(pfn_to_page(0xde600), ""); > > > > say, in the end of memblock_free_all()? > > The memory is not continuous, see MEMBLOCK: > memory size = 0x4c0fffff reserved size = 0x027ef058 > memory.cnt = 0xa > memory[0x0] [0x80a00000-0x855fffff], 0x04c00000 bytes flags: 0x0 > memory[0x1] [0x86a00000-0x87dfffff], 0x01400000 bytes flags: 0x0 > memory[0x2] [0x8bd00000-0x8c4fffff], 0x00800000 bytes flags: 0x0 > memory[0x3] [0x8e300000-0x8ecfffff], 0x00a00000 bytes flags: 0x0 > memory[0x4] [0x90d00000-0xbfffffff], 0x2f300000 bytes flags: 0x0 > memory[0x5] [0xcc000000-0xdc9fffff], 0x10a00000 bytes flags: 0x0 > memory[0x6] [0xde700000-0xde9fffff], 0x00300000 bytes flags: 0x0 > ... > > The pfn_range [0xde600,0xde700] => addr_range [0xde600000,0xde700000] > is not available memory, and we won't create memmap , so with or without > your patch, we can't see the range in free_memmap(), right? This is not available memory and we won't see the reange in free_memmap(), but we still should create memmap for it and that's what my patch tried to do. There are a lot of places in core mm that operate on pageblocks and free_unused_memmap() should make sure that any pageblock has a valid memory map. Currently, that's not the case when SPARSEMEM=y and my patch tried to fix it. Can you please send log with my patch applied and with the printing of ranges that are freed in free_unused_memmap() you've used in previous mails? > > > there are some scene, so I select HOLES_IN_ZONE in ARCH_HISI(ARM) to solve > > > this issue in our 5.10, should we select HOLES_IN_ZONE in all ARM or only in > > > ARCH_HISI, any better solution? Thanks. > > > > I don't think that HOLES_IN_ZONE is the right solution. I believe that we > > must keep the memory map aligned on pageblock boundaries. That's surely not the > > case for SPARSEMEM as of now, and if my fix is not enough we need to find > > where it went wrong. > > > > Besides, I'd say that if it is possible to update your firmware to make the > > memory layout reported to the kernel less, hmm, esoteric, you would hit > > less corner cases. > > Sorry, memory layout is customized and we can't change it, some memory is > for special purposes by our production. I understand that this memory cannot be used by Linux, but the firmware may supply the kernel with actual physical memory layout and then mark all the special purpose memory that kernel should not touch as reserved. > > [1] https://lore.kernel.org/lkml/YIpY8TXCSc7Lfa2Z@kernel.org > > -- Sincerely yours, Mike. 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=-3.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 2F9F5C433B4 for ; Sun, 9 May 2021 05:59:47 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id 898EF613EE for ; Sun, 9 May 2021 05:59:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 898EF613EE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvmarm-bounces@lists.cs.columbia.edu Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 0B7894B415; Sun, 9 May 2021 01:59:46 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Authentication-Results: mm01.cs.columbia.edu (amavisd-new); dkim=softfail (fail, message has been altered) header.i=@kernel.org Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dZEI3UorqTQz; Sun, 9 May 2021 01:59:43 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 7F6034B6BF; Sun, 9 May 2021 01:59:43 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 768194B415 for ; Sun, 9 May 2021 01:59:42 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ersHJLO5jZW3 for ; Sun, 9 May 2021 01:59:41 -0400 (EDT) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id E187F4B34F for ; Sun, 9 May 2021 01:59:40 -0400 (EDT) Received: by mail.kernel.org (Postfix) with ESMTPSA id 1CEF561364; Sun, 9 May 2021 05:59:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620539978; bh=F9gqyGBpHvA5BP4VIejNuaHDQi9t//ZqzxoUtXHZIBY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Pg6c3El7f8wTosM1GHBA2Kmlc0+0eBs2evwd1DCes38mEsljDvr4GOET2y7BDPi0c L2AUKUVe8Iy2L5FFC5mrYAfumqdKP09p+LYX8GA0QrfcCG6SN2NVPnHW4FkETfwzXX OR3Qp/nyQ4g733GxrKLB8kyAuq5GPxWaiUDePC9D/O/kDMRLzPNqsWZtMU2Cqwn5Rw 2nTiBom6NZz7a/ETXo2sLS0lKFixn2K8Mu4aN96x7VubtFTIeTEtPnADkFRASjesAp 7t6tPQykwNdJNYoLm8iRRHsRPnasprnsnSIhY4MIIv9DRs0McBHwIOWYK7WzOwZccl FvFfB99NMgyig== Date: Sun, 9 May 2021 08:59:29 +0300 From: Mike Rapoport To: Kefeng Wang Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> <24b37c01-fc75-d459-6e61-d67e8f0cf043@redhat.com> <82cfbb7f-dd4f-12d8-dc76-847f06172200@huawei.com> <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> Cc: Anshuman Khandual , Catalin Marinas , David Hildenbrand , linux-kernel@vger.kernel.org, Mike Rapoport , linux-mm@kvack.org, kvmarm@lists.cs.columbia.edu, Marc Zyngier , Andrew Morton , Will Deacon , linux-arm-kernel@lists.infradead.org X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu T24gRnJpLCBNYXkgMDcsIDIwMjEgYXQgMDg6MzQ6NTJQTSArMDgwMCwgS2VmZW5nIFdhbmcgd3Jv dGU6Cj4gCj4gCj4gT24gMjAyMS81LzcgMTg6MzAsIE1pa2UgUmFwb3BvcnQgd3JvdGU6Cj4gPiBP biBGcmksIE1heSAwNywgMjAyMSBhdCAwMzoxNzowOFBNICswODAwLCBLZWZlbmcgV2FuZyB3cm90 ZToKPiA+ID4gCj4gPiA+IE9uIDIwMjEvNS82IDIwOjQ3LCBLZWZlbmcgV2FuZyB3cm90ZToKPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IG5vLCB0aGUgQ09ORklHX0FSTV9MUEFFIGlzIG5vdCBzZXQs IGFuZCB5ZXMgd2l0aCBzYW1lIHBhbmljIGF0Cj4gPiA+ID4gPiA+ID4gPiBtb3ZlX2ZyZWVwYWdl cyBhdAo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBzdGFydF9wZm4vZW5kX3BmbiBb ZGU2MDAsIGRlN2ZmXSwgW2RlNjAwMDAwLCBkZTdmZjAwMF0KPiA+ID4gPiA+ID4gPiA+IDrCoCBw Zm4gPWRlNjAwLCBwYWdlCj4gPiA+ID4gPiA+ID4gPiA9ZWYzY2MwMDAsIHBhZ2UtZmxhZ3MgPSBm ZmZmZmZmZizCoCBwZm4ycGh5ID0gZGU2MDAwMDAKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+ID4gPiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4YjAyMDAwMDAgLQo+ID4gPiA+ ID4gPiA+ID4gPiA+IDB4YzAwMDAwMDAsIHBmbjogYjAyMDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+ ID4gPiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4Y2MwMDAwMDAgLQo+ID4gPiA+ID4g PiA+ID4gPiA+IDB4ZGNhMDAwMDAsIHBmbjogY2MwMDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+ID4g PiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4ZGU3MDAwMDAgLQo+ID4gPiA+ID4gPiA+ ID4gPiA+IDB4ZGVhMDAwMDAsIHBmbjogZGU3MDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IEhtbSwgW2RlNjAwLCBkZTdmZl0gaXMgbm90IGFkZGVkIHRvIHRoZSBmcmVlIGxp c3RzIHdoaWNoIGlzCj4gPiA+ID4gPiA+ID4gY29ycmVjdC4gQnV0Cj4gPiA+ID4gPiA+ID4gdGhl biBpdCdzIHVuY2xlYXIgaG93IHRoZSBwYWdlIGZvciBkZTYwMCBnZXRzIHRvIG1vdmVfZnJlZXBh Z2VzKCkuLi4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBDYW4ndCBzYXkgSSBoYXZlIGFu eSBicmlnaHQgaWRlYXMgdG8gdHJ5IGhlcmUuLi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEFy ZSB3ZSBtaXNzaW5nIHNvbWUgY2hlY2tzIChlLmcuLCBQYWdlUmVzZXJ2ZWQoKSkgdGhhdAo+ID4g PiA+ID4gPiBwZm5fdmFsaWRfd2l0aGluKCkKPiA+ID4gPiA+ID4gd291bGQgaGF2ZSAiY2F1Z2h0 IiBiZWZvcmU/Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IFVubGVzcyBJJ20gbWlzc2luZyBzb21ldGhp bmcgdGhlIGNyYXNoIGhhcHBlbnMgaW4gX19ybXF1ZXVlX2ZhbGxiYWNrKCk6Cj4gPiA+ID4gPiAK PiA+ID4gPiA+IGRvX3N0ZWFsOgo+ID4gPiA+ID4gIMKgwqDCoMKgcGFnZSA9IGdldF9wYWdlX2Zy b21fZnJlZV9hcmVhKGFyZWEsIGZhbGxiYWNrX210KTsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gIMKg wqDCoMKgc3RlYWxfc3VpdGFibGVfZmFsbGJhY2soem9uZSwgcGFnZSwgYWxsb2NfZmxhZ3MsIHN0 YXJ0X21pZ3JhdGV0eXBlLAo+ID4gPiA+ID4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhbl9zdGVhbCk7Cj4gPiA+ID4gPiAg wqDCoMKgwqDCoMKgwqAgLT4gbW92ZV9mcmVlcGFnZXMoKQo+ID4gPiA+ID4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLT4gQlVHKCkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gYSBwYWdlIGZyb20g ZnJlZSBhcmVhIHNob3VsZCBiZSBzYW5lIGFzIHRoZSBmcmVlZCByYW5nZSB3YXMgbmV2ZXIKPiA+ ID4gPiA+IGFkZGVkCj4gPiA+ID4gPiBpdCB0byB0aGUgZnJlZSBsaXN0cy4KPiA+ID4gPiAKPiA+ ID4gPiBTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UgZHVlIHRvIHRoZSB2YWNhdGlvbi4KPiA+ ID4gPiAKPiA+ID4gPiBUaGUgcGZuIGluIHJhbmdlIFtkZTYwMCwgZGU3ZmZdIHdvbid0IGJlIGFk ZGVkIGludG8gdGhlIGZyZWUgbGlzdHMgdmlhCj4gPiA+ID4gX19mcmVlX21lbW9yeV9jb3JlKCks IGJ1dCB0aGUgcGZuIGNvdWxkIGJlIGFkZGVkIGludG8gZnJlZWxpc3RzIHZpYQo+ID4gPiA+IGZy ZWVfaGlnaG1lbV9wYWdlKCkKPiA+ID4gPiAKPiA+ID4gPiBJIGFkZCBzb21lIGRlYnVnWzFdIGlu IGFkZF90b19mcmVlX2xpc3QoKSwgd2UgY291bGQgc2VlIHRoZSBjYWxsdHJhY2UKPiA+ID4gPiAK PiA+ID4gPiBmcmVlX2hpZ2hwYWdlcywgcmFuZ2VfcGZuIFtiMDIwMCwgYzAwMDBdLCByYW5nZV9h ZGRyIFtiMDIwMDAwMCwgYzAwMDAwMDBdCj4gPiA+ID4gZnJlZV9oaWdocGFnZXMsIHJhbmdlX3Bm biBbY2MwMDAsIGRjYTAwXSwgcmFuZ2VfYWRkciBbY2MwMDAwMDAsIGRjYTAwMDAwXQo+ID4gPiA+ IGZyZWVfaGlnaHBhZ2VzLCByYW5nZV9wZm4gW2RlNzAwLCBkZWEwMF0sIHJhbmdlX2FkZHIgW2Rl NzAwMDAwLCBkZWEwMDAwMF0KPiA+ID4gPiBhZGRfdG9fZnJlZV9saXN0LCA9PT0+IHBmbiA9IGRl NzAwCj4gPiA+ID4gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gPiA+ID4g V0FSTklORzogQ1BVOiAwIFBJRDogMCBhdCBtbS9wYWdlX2FsbG9jLmM6OTAwIGFkZF90b19mcmVl X2xpc3QrMHg4Yy8weGVjCj4gPiA+ID4gcGZuID0gZGU3MDAKPiA+ID4gPiBNb2R1bGVzIGxpbmtl ZCBpbjoKPiA+ID4gPiBDUFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIgTm90IHRhaW50ZWQgNS4x MC4wKyAjNDgKPiA+ID4gPiBIYXJkd2FyZSBuYW1lOiBIaXNpbGljb24gQTkKPiA+ID4gPiBbPGMw MTBhNjAwPl0gKHNob3dfc3RhY2spIGZyb20gWzxjMDRiMjFjND5dIChkdW1wX3N0YWNrKzB4OWMv MHhjMCkKPiA+ID4gPiBbPGMwNGIyMWM0Pl0gKGR1bXBfc3RhY2spIGZyb20gWzxjMDExYzcwOD5d IChfX3dhcm4rMHhjMC8weGVjKQo+ID4gPiA+IFs8YzAxMWM3MDg+XSAoX193YXJuKSBmcm9tIFs8 YzAxMWM3YTg+XSAod2Fybl9zbG93cGF0aF9mbXQrMHg3NC8weGE0KQo+ID4gPiA+IFs8YzAxMWM3 YTg+XSAod2Fybl9zbG93cGF0aF9mbXQpIGZyb20gWzxjMDIzNzIxYz5dCj4gPiA+ID4gKGFkZF90 b19mcmVlX2xpc3QrMHg4Yy8weGVjKQo+ID4gPiA+IFs8YzAyMzcyMWM+XSAoYWRkX3RvX2ZyZWVf bGlzdCkgZnJvbSBbPGMwMjM3ZTAwPl0KPiA+ID4gPiAoZnJlZV9wY3BwYWdlc19idWxrKzB4MjAw LzB4Mjc4KQo+ID4gPiA+IFs8YzAyMzdlMDA+XSAoZnJlZV9wY3BwYWdlc19idWxrKSBmcm9tIFs8 YzAyMzhkMTQ+XQo+ID4gPiA+IChmcmVlX3VucmVmX3BhZ2UrMHg1OC8weDY4KQo+ID4gPiA+IFs8 YzAyMzhkMTQ+XSAoZnJlZV91bnJlZl9wYWdlKSBmcm9tIFs8YzAyM2JiNTQ+XQo+ID4gPiA+IChm cmVlX2hpZ2htZW1fcGFnZSsweGMvMHg1MCkKPiA+ID4gPiBbPGMwMjNiYjU0Pl0gKGZyZWVfaGln aG1lbV9wYWdlKSBmcm9tIFs8YzA3MDYyMGM+XSAobWVtX2luaXQrMHgyMWMvMHgyNTQpCj4gPiA+ ID4gWzxjMDcwNjIwYz5dIChtZW1faW5pdCkgZnJvbSBbPGMwNzAwYjM4Pl0gKHN0YXJ0X2tlcm5l bCsweDI1OC8weDVjMCkKPiA+ID4gPiBbPGMwNzAwYjM4Pl0gKHN0YXJ0X2tlcm5lbCkgZnJvbSBb PDAwMDAwMDAwPl0gKDB4MCkKPiA+ID4gPiAKPiA+ID4gPiBzbyBhbnkgaWRlYT8KPiA+ID4gCj4g PiA+IElmIHBmbiA9IDB4ZGU3MDAsIGR1ZSB0byB0aGUgcGFnZWJsb2NrX25yX3BhZ2VzID0gMHgy MDAsIHRoZW4gdGhlCj4gPiA+IHN0YXJ0X3BmbixlbmRfcGZuIHBhc3NlZCB0byBtb3ZlX2ZyZWVw YWdlcygpIHdpbGwgYmUgW2RlNjAwLCBkZTdmZl0sCj4gPiA+IGJ1dCB0aGUgcmFuZ2Ugb2YgW2Rl NjAwLGRlNzAwXSB3aXRob3V0IOKAmHN0cnVjdCBwYWdlJyB3aWxsIGxlYWQgdG8KPiA+ID4gdGhp cyBwYW5pYyB3aGVuIHBmbl92YWxpZF93aXRoaW4gbm90IGVuYWJsZWQgaWYgbm8gSE9MRVNfSU5f Wk9ORSwKPiA+ID4gYW5kIHRoZSBzYW1lIGlzc3VlIHdpbGwgb2NjdXJyZWQgaW4gaXNvbGF0ZV9m cmVlcGFnZXNfYmxvY2soKSwgbWF5YmUKPiA+IAo+ID4gSSB0aGluayB5b3VyIGFuYWx5c2lzIGlz IGNvcnJlY3QgZXhjZXB0IG9uZSBtaW5vciBkZXRhaWwuIFdpdGggdGhlICNpZmRlZgo+ID4gZml4 IEkndmUgcHJvcG9zZWQgZWFybGllcmkgWzFdIHRoZSBtZW1tYXAgZm9yIFsweGRlNjAwLCAweGRl NzAwXSBzaG91bGQgbm90Cj4gPiBiZSBmcmVlZCBzbyB0aGVyZSBzaG91bGQgYmUgYSBzdHJ1Y3Qg cGFnZS4gRGlkIHlvdSBjaGVjayB3aGF0IHBhcnRzIG9mIHRoZQo+ID4gbWVtbWFwIGFyZSBhY3R1 YWxseSBmcmVlZCB3aXRoIHRoaXMgcGF0Y2ggYXBwbGllZD8KPiA+IFdvdWxkIHlvdSBnZXQgYSBw YW5pYyBpZiB5b3UgYWRkCj4gPiAKPiA+IAlkdW1wX3BhZ2UocGZuX3RvX3BhZ2UoMHhkZTYwMCks ICIiKTsKPiA+IAo+ID4gc2F5LCBpbiB0aGUgZW5kIG9mIG1lbWJsb2NrX2ZyZWVfYWxsKCk/Cj4g Cj4gVGhlIG1lbW9yeSBpcyBub3QgY29udGludW91cywgc2VlIE1FTUJMT0NLOgo+ICBtZW1vcnkg c2l6ZSA9IDB4NGMwZmZmZmYgcmVzZXJ2ZWQgc2l6ZSA9IDB4MDI3ZWYwNTgKPiAgbWVtb3J5LmNu dCAgPSAweGEKPiAgbWVtb3J5WzB4MF0gICAgWzB4ODBhMDAwMDAtMHg4NTVmZmZmZl0sIDB4MDRj MDAwMDAgYnl0ZXMgZmxhZ3M6IDB4MAo+ICBtZW1vcnlbMHgxXSAgICBbMHg4NmEwMDAwMC0weDg3 ZGZmZmZmXSwgMHgwMTQwMDAwMCBieXRlcyBmbGFnczogMHgwCj4gIG1lbW9yeVsweDJdICAgIFsw eDhiZDAwMDAwLTB4OGM0ZmZmZmZdLCAweDAwODAwMDAwIGJ5dGVzIGZsYWdzOiAweDAKPiAgbWVt b3J5WzB4M10gICAgWzB4OGUzMDAwMDAtMHg4ZWNmZmZmZl0sIDB4MDBhMDAwMDAgYnl0ZXMgZmxh Z3M6IDB4MAo+ICBtZW1vcnlbMHg0XSAgICBbMHg5MGQwMDAwMC0weGJmZmZmZmZmXSwgMHgyZjMw MDAwMCBieXRlcyBmbGFnczogMHgwCj4gIG1lbW9yeVsweDVdICAgIFsweGNjMDAwMDAwLTB4ZGM5 ZmZmZmZdLCAweDEwYTAwMDAwIGJ5dGVzIGZsYWdzOiAweDAKPiAgbWVtb3J5WzB4Nl0gICAgWzB4 ZGU3MDAwMDAtMHhkZTlmZmZmZl0sIDB4MDAzMDAwMDAgYnl0ZXMgZmxhZ3M6IDB4MAo+IC4uLgo+ IAo+IFRoZSBwZm5fcmFuZ2UgWzB4ZGU2MDAsMHhkZTcwMF0gPT4gYWRkcl9yYW5nZSBbMHhkZTYw MDAwMCwweGRlNzAwMDAwXQo+IGlzIG5vdCBhdmFpbGFibGUgbWVtb3J5LCBhbmQgd2Ugd29uJ3Qg Y3JlYXRlIG1lbW1hcCAsIHNvIHdpdGggb3Igd2l0aG91dAo+IHlvdXIgcGF0Y2gsIHdlIGNhbid0 IHNlZSB0aGUgcmFuZ2UgaW4gZnJlZV9tZW1tYXAoKSwgcmlnaHQ/CiAKClRoaXMgaXMgbm90IGF2 YWlsYWJsZSBtZW1vcnkgYW5kIHdlIHdvbid0IHNlZSB0aGUgcmVhbmdlIGluIGZyZWVfbWVtbWFw KCksCmJ1dCB3ZSBzdGlsbCBzaG91bGQgY3JlYXRlIG1lbW1hcCBmb3IgaXQgYW5kIHRoYXQncyB3 aGF0IG15IHBhdGNoIHRyaWVkIHRvCmRvLgoKVGhlcmUgYXJlIGEgbG90IG9mIHBsYWNlcyBpbiBj b3JlIG1tIHRoYXQgb3BlcmF0ZSBvbiBwYWdlYmxvY2tzIGFuZApmcmVlX3VudXNlZF9tZW1tYXAo KSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgYW55IHBhZ2VibG9jayBoYXMgYSB2YWxpZCBtZW1vcnkK bWFwLgoKQ3VycmVudGx5LCB0aGF0J3Mgbm90IHRoZSBjYXNlIHdoZW4gU1BBUlNFTUVNPXkgYW5k IG15IHBhdGNoIHRyaWVkIHRvIGZpeAppdC4KCkNhbiB5b3UgcGxlYXNlIHNlbmQgbG9nIHdpdGgg bXkgcGF0Y2ggYXBwbGllZCBhbmQgd2l0aCB0aGUgcHJpbnRpbmcgb2YKcmFuZ2VzIHRoYXQgYXJl IGZyZWVkIGluIGZyZWVfdW51c2VkX21lbW1hcCgpIHlvdSd2ZSB1c2VkIGluIHByZXZpb3VzCm1h aWxzPwogCj4gPiA+IHRoZXJlIGFyZSBzb21lIHNjZW5lLCBzbyBJIHNlbGVjdCBIT0xFU19JTl9a T05FIGluIEFSQ0hfSElTSShBUk0pIHRvIHNvbHZlCj4gPiA+IHRoaXMgaXNzdWUgaW4gb3VyIDUu MTAsIHNob3VsZCB3ZSBzZWxlY3QgSE9MRVNfSU5fWk9ORSBpbiBhbGwgQVJNIG9yIG9ubHkgaW4K PiA+ID4gQVJDSF9ISVNJLCBhbnkgYmV0dGVyIHNvbHV0aW9uPyAgVGhhbmtzLgo+ID4gCj4gPiBJ IGRvbid0IHRoaW5rIHRoYXQgSE9MRVNfSU5fWk9ORSBpcyB0aGUgcmlnaHQgc29sdXRpb24uIEkg YmVsaWV2ZSB0aGF0IHdlCj4gPiBtdXN0IGtlZXAgdGhlIG1lbW9yeSBtYXAgYWxpZ25lZCBvbiBw YWdlYmxvY2sgYm91bmRhcmllcy4gVGhhdCdzIHN1cmVseSBub3QgdGhlCj4gPiBjYXNlIGZvciBT UEFSU0VNRU0gYXMgb2Ygbm93LCBhbmQgaWYgbXkgZml4IGlzIG5vdCBlbm91Z2ggd2UgbmVlZCB0 byBmaW5kCj4gPiB3aGVyZSBpdCB3ZW50IHdyb25nLgo+ID4gCj4gPiBCZXNpZGVzLCBJJ2Qgc2F5 IHRoYXQgaWYgaXQgaXMgcG9zc2libGUgdG8gdXBkYXRlIHlvdXIgZmlybXdhcmUgdG8gbWFrZSB0 aGUKPiA+IG1lbW9yeSBsYXlvdXQgcmVwb3J0ZWQgdG8gdGhlIGtlcm5lbCBsZXNzLCBobW0sIGVz b3RlcmljLCB5b3Ugd291bGQgaGl0Cj4gPiBsZXNzIGNvcm5lciBjYXNlcy4KPiAKPiBTb3JyeSwg bWVtb3J5IGxheW91dCBpcyBjdXN0b21pemVkIGFuZCB3ZSBjYW4ndCBjaGFuZ2UgaXQsIHNvbWUg bWVtb3J5IGlzCj4gZm9yIHNwZWNpYWwgcHVycG9zZXMgYnkgb3VyIHByb2R1Y3Rpb24uCiAKSSB1 bmRlcnN0YW5kIHRoYXQgdGhpcyBtZW1vcnkgY2Fubm90IGJlIHVzZWQgYnkgTGludXgsIGJ1dCB0 aGUgZmlybXdhcmUgbWF5CnN1cHBseSB0aGUga2VybmVsIHdpdGggYWN0dWFsIHBoeXNpY2FsIG1l bW9yeSBsYXlvdXQgYW5kIHRoZW4gbWFyayBhbGwKdGhlIHNwZWNpYWwgcHVycG9zZSBtZW1vcnkg dGhhdCBrZXJuZWwgc2hvdWxkIG5vdCB0b3VjaCBhcyByZXNlcnZlZC4KCj4gPiBbMV0gaHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC9ZSXBZOFRYQ1NjN0xmYTJaQGtlcm5lbC5vcmcKPiA+IAoK LS0gClNpbmNlcmVseSB5b3VycywKTWlrZS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1hcm1AbGlzdHMuY3MuY29s dW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21haWxtYW4vbGlzdGluZm8v a3ZtYXJtCg== 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=-4.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 83C52C433B4 for ; Sun, 9 May 2021 06:01:50 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 007C260FE3 for ; Sun, 9 May 2021 06:01:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 007C260FE3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DXAESWyVsF9hzbaQzqqC8Vg6njg0tq4Tf8VaIkrOqbc=; b=rEi9/5C256RUfNY7rXm9k5gPi ZZvlF9f2dgy80W0c+fREr4b1iAO5TVTFydnlmf81EinBW2wjDyvSZSKURW7oiX+exi9s3SMkHhOEw fPNezocC7QBXNHCrki0LxTge8cpUDytNsfv+nCqJjA0OA4vKp4VfHEOwubfnfm0+7v8JjcaMFFJAa 6VsT0RBXNtZUjLG/oC5O6vaBMbW/91S068rgShCQlT7AJ6vK+R761syZzp+nKyVx+WrTRo2LQQwyH uhIDNLHkBtOMPL2IwhW2uBOeAkGnXyXwVmLL1pK0Hy6kiS27DkArE/b2eK/WhySoMzXKDBtMpACcK npkpkF8Cw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lfcTj-00B4EM-03; Sun, 09 May 2021 05:59:47 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lfcTf-00B4Dy-Jc for linux-arm-kernel@desiato.infradead.org; Sun, 09 May 2021 05:59:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=g+PglFHZ22toytfB7aBAU/7HA1m+WESJEynZFKRg30Y=; b=YghHrbiBYZDO1vRUm+Ibg8sXbU SPsE+ameijL97yytR6yU4suD737HfwsB99Igxa565u9GgQKlg5bMCFrmoTFY1rYoYh+uvkqhXr5ZS 4xTOEk22NnoTNzbDSmtOjvW9uLyDKKRxCn2bAHZqdjAT89axPc1kBW8W2S0tHL3tOdUc2m617aCbl AXKyAjYLpH45SIRV2vp9l7nU9HXMbzEOoW46bmCX23XATWZniO7O2cGvNgQrQ9w1Sj1NLvgaU0tCj ytm6QewhSJG/6HWjW5G4sjKr+heKSTEzMD+y8PgVNKmZ1WvH9xJnz3+ye8ifzGTMayrdSsKYzNR7a MaoYVUoQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lfcTc-007rX5-Ap for linux-arm-kernel@lists.infradead.org; Sun, 09 May 2021 05:59:42 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1CEF561364; Sun, 9 May 2021 05:59:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620539978; bh=F9gqyGBpHvA5BP4VIejNuaHDQi9t//ZqzxoUtXHZIBY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Pg6c3El7f8wTosM1GHBA2Kmlc0+0eBs2evwd1DCes38mEsljDvr4GOET2y7BDPi0c L2AUKUVe8Iy2L5FFC5mrYAfumqdKP09p+LYX8GA0QrfcCG6SN2NVPnHW4FkETfwzXX OR3Qp/nyQ4g733GxrKLB8kyAuq5GPxWaiUDePC9D/O/kDMRLzPNqsWZtMU2Cqwn5Rw 2nTiBom6NZz7a/ETXo2sLS0lKFixn2K8Mu4aN96x7VubtFTIeTEtPnADkFRASjesAp 7t6tPQykwNdJNYoLm8iRRHsRPnasprnsnSIhY4MIIv9DRs0McBHwIOWYK7WzOwZccl FvFfB99NMgyig== Date: Sun, 9 May 2021 08:59:29 +0300 From: Mike Rapoport To: Kefeng Wang Cc: David Hildenbrand , linux-arm-kernel@lists.infradead.org, Andrew Morton , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> <24b37c01-fc75-d459-6e61-d67e8f0cf043@redhat.com> <82cfbb7f-dd4f-12d8-dc76-847f06172200@huawei.com> <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33c67e13-dc48-9a2f-46d8-a532e17380fb@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210508_225940_446795_CF8ED358 X-CRM114-Status: GOOD ( 48.06 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBNYXkgMDcsIDIwMjEgYXQgMDg6MzQ6NTJQTSArMDgwMCwgS2VmZW5nIFdhbmcgd3Jv dGU6Cj4gCj4gCj4gT24gMjAyMS81LzcgMTg6MzAsIE1pa2UgUmFwb3BvcnQgd3JvdGU6Cj4gPiBP biBGcmksIE1heSAwNywgMjAyMSBhdCAwMzoxNzowOFBNICswODAwLCBLZWZlbmcgV2FuZyB3cm90 ZToKPiA+ID4gCj4gPiA+IE9uIDIwMjEvNS82IDIwOjQ3LCBLZWZlbmcgV2FuZyB3cm90ZToKPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IG5vLCB0aGUgQ09ORklHX0FSTV9MUEFFIGlzIG5vdCBzZXQs IGFuZCB5ZXMgd2l0aCBzYW1lIHBhbmljIGF0Cj4gPiA+ID4gPiA+ID4gPiBtb3ZlX2ZyZWVwYWdl cyBhdAo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBzdGFydF9wZm4vZW5kX3BmbiBb ZGU2MDAsIGRlN2ZmXSwgW2RlNjAwMDAwLCBkZTdmZjAwMF0KPiA+ID4gPiA+ID4gPiA+IDrCoCBw Zm4gPWRlNjAwLCBwYWdlCj4gPiA+ID4gPiA+ID4gPiA9ZWYzY2MwMDAsIHBhZ2UtZmxhZ3MgPSBm ZmZmZmZmZizCoCBwZm4ycGh5ID0gZGU2MDAwMDAKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+ID4gPiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4YjAyMDAwMDAgLQo+ID4gPiA+ ID4gPiA+ID4gPiA+IDB4YzAwMDAwMDAsIHBmbjogYjAyMDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+ ID4gPiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4Y2MwMDAwMDAgLQo+ID4gPiA+ID4g PiA+ID4gPiA+IDB4ZGNhMDAwMDAsIHBmbjogY2MwMDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+ID4g PiA+IF9fZnJlZV9tZW1vcnlfY29yZSwgcmFuZ2U6IDB4ZGU3MDAwMDAgLQo+ID4gPiA+ID4gPiA+ ID4gPiA+IDB4ZGVhMDAwMDAsIHBmbjogZGU3MDAgLSBiMDIwMAo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IEhtbSwgW2RlNjAwLCBkZTdmZl0gaXMgbm90IGFkZGVkIHRvIHRoZSBmcmVlIGxp c3RzIHdoaWNoIGlzCj4gPiA+ID4gPiA+ID4gY29ycmVjdC4gQnV0Cj4gPiA+ID4gPiA+ID4gdGhl biBpdCdzIHVuY2xlYXIgaG93IHRoZSBwYWdlIGZvciBkZTYwMCBnZXRzIHRvIG1vdmVfZnJlZXBh Z2VzKCkuLi4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBDYW4ndCBzYXkgSSBoYXZlIGFu eSBicmlnaHQgaWRlYXMgdG8gdHJ5IGhlcmUuLi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEFy ZSB3ZSBtaXNzaW5nIHNvbWUgY2hlY2tzIChlLmcuLCBQYWdlUmVzZXJ2ZWQoKSkgdGhhdAo+ID4g PiA+ID4gPiBwZm5fdmFsaWRfd2l0aGluKCkKPiA+ID4gPiA+ID4gd291bGQgaGF2ZSAiY2F1Z2h0 IiBiZWZvcmU/Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IFVubGVzcyBJJ20gbWlzc2luZyBzb21ldGhp bmcgdGhlIGNyYXNoIGhhcHBlbnMgaW4gX19ybXF1ZXVlX2ZhbGxiYWNrKCk6Cj4gPiA+ID4gPiAK PiA+ID4gPiA+IGRvX3N0ZWFsOgo+ID4gPiA+ID4gIMKgwqDCoMKgcGFnZSA9IGdldF9wYWdlX2Zy b21fZnJlZV9hcmVhKGFyZWEsIGZhbGxiYWNrX210KTsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gIMKg wqDCoMKgc3RlYWxfc3VpdGFibGVfZmFsbGJhY2soem9uZSwgcGFnZSwgYWxsb2NfZmxhZ3MsIHN0 YXJ0X21pZ3JhdGV0eXBlLAo+ID4gPiA+ID4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhbl9zdGVhbCk7Cj4gPiA+ID4gPiAg wqDCoMKgwqDCoMKgwqAgLT4gbW92ZV9mcmVlcGFnZXMoKQo+ID4gPiA+ID4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLT4gQlVHKCkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gYSBwYWdlIGZyb20g ZnJlZSBhcmVhIHNob3VsZCBiZSBzYW5lIGFzIHRoZSBmcmVlZCByYW5nZSB3YXMgbmV2ZXIKPiA+ ID4gPiA+IGFkZGVkCj4gPiA+ID4gPiBpdCB0byB0aGUgZnJlZSBsaXN0cy4KPiA+ID4gPiAKPiA+ ID4gPiBTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UgZHVlIHRvIHRoZSB2YWNhdGlvbi4KPiA+ ID4gPiAKPiA+ID4gPiBUaGUgcGZuIGluIHJhbmdlIFtkZTYwMCwgZGU3ZmZdIHdvbid0IGJlIGFk ZGVkIGludG8gdGhlIGZyZWUgbGlzdHMgdmlhCj4gPiA+ID4gX19mcmVlX21lbW9yeV9jb3JlKCks IGJ1dCB0aGUgcGZuIGNvdWxkIGJlIGFkZGVkIGludG8gZnJlZWxpc3RzIHZpYQo+ID4gPiA+IGZy ZWVfaGlnaG1lbV9wYWdlKCkKPiA+ID4gPiAKPiA+ID4gPiBJIGFkZCBzb21lIGRlYnVnWzFdIGlu IGFkZF90b19mcmVlX2xpc3QoKSwgd2UgY291bGQgc2VlIHRoZSBjYWxsdHJhY2UKPiA+ID4gPiAK PiA+ID4gPiBmcmVlX2hpZ2hwYWdlcywgcmFuZ2VfcGZuIFtiMDIwMCwgYzAwMDBdLCByYW5nZV9h ZGRyIFtiMDIwMDAwMCwgYzAwMDAwMDBdCj4gPiA+ID4gZnJlZV9oaWdocGFnZXMsIHJhbmdlX3Bm biBbY2MwMDAsIGRjYTAwXSwgcmFuZ2VfYWRkciBbY2MwMDAwMDAsIGRjYTAwMDAwXQo+ID4gPiA+ IGZyZWVfaGlnaHBhZ2VzLCByYW5nZV9wZm4gW2RlNzAwLCBkZWEwMF0sIHJhbmdlX2FkZHIgW2Rl NzAwMDAwLCBkZWEwMDAwMF0KPiA+ID4gPiBhZGRfdG9fZnJlZV9saXN0LCA9PT0+IHBmbiA9IGRl NzAwCj4gPiA+ID4gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gPiA+ID4g V0FSTklORzogQ1BVOiAwIFBJRDogMCBhdCBtbS9wYWdlX2FsbG9jLmM6OTAwIGFkZF90b19mcmVl X2xpc3QrMHg4Yy8weGVjCj4gPiA+ID4gcGZuID0gZGU3MDAKPiA+ID4gPiBNb2R1bGVzIGxpbmtl ZCBpbjoKPiA+ID4gPiBDUFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIgTm90IHRhaW50ZWQgNS4x MC4wKyAjNDgKPiA+ID4gPiBIYXJkd2FyZSBuYW1lOiBIaXNpbGljb24gQTkKPiA+ID4gPiBbPGMw MTBhNjAwPl0gKHNob3dfc3RhY2spIGZyb20gWzxjMDRiMjFjND5dIChkdW1wX3N0YWNrKzB4OWMv MHhjMCkKPiA+ID4gPiBbPGMwNGIyMWM0Pl0gKGR1bXBfc3RhY2spIGZyb20gWzxjMDExYzcwOD5d IChfX3dhcm4rMHhjMC8weGVjKQo+ID4gPiA+IFs8YzAxMWM3MDg+XSAoX193YXJuKSBmcm9tIFs8 YzAxMWM3YTg+XSAod2Fybl9zbG93cGF0aF9mbXQrMHg3NC8weGE0KQo+ID4gPiA+IFs8YzAxMWM3 YTg+XSAod2Fybl9zbG93cGF0aF9mbXQpIGZyb20gWzxjMDIzNzIxYz5dCj4gPiA+ID4gKGFkZF90 b19mcmVlX2xpc3QrMHg4Yy8weGVjKQo+ID4gPiA+IFs8YzAyMzcyMWM+XSAoYWRkX3RvX2ZyZWVf bGlzdCkgZnJvbSBbPGMwMjM3ZTAwPl0KPiA+ID4gPiAoZnJlZV9wY3BwYWdlc19idWxrKzB4MjAw LzB4Mjc4KQo+ID4gPiA+IFs8YzAyMzdlMDA+XSAoZnJlZV9wY3BwYWdlc19idWxrKSBmcm9tIFs8 YzAyMzhkMTQ+XQo+ID4gPiA+IChmcmVlX3VucmVmX3BhZ2UrMHg1OC8weDY4KQo+ID4gPiA+IFs8 YzAyMzhkMTQ+XSAoZnJlZV91bnJlZl9wYWdlKSBmcm9tIFs8YzAyM2JiNTQ+XQo+ID4gPiA+IChm cmVlX2hpZ2htZW1fcGFnZSsweGMvMHg1MCkKPiA+ID4gPiBbPGMwMjNiYjU0Pl0gKGZyZWVfaGln aG1lbV9wYWdlKSBmcm9tIFs8YzA3MDYyMGM+XSAobWVtX2luaXQrMHgyMWMvMHgyNTQpCj4gPiA+ ID4gWzxjMDcwNjIwYz5dIChtZW1faW5pdCkgZnJvbSBbPGMwNzAwYjM4Pl0gKHN0YXJ0X2tlcm5l bCsweDI1OC8weDVjMCkKPiA+ID4gPiBbPGMwNzAwYjM4Pl0gKHN0YXJ0X2tlcm5lbCkgZnJvbSBb PDAwMDAwMDAwPl0gKDB4MCkKPiA+ID4gPiAKPiA+ID4gPiBzbyBhbnkgaWRlYT8KPiA+ID4gCj4g PiA+IElmIHBmbiA9IDB4ZGU3MDAsIGR1ZSB0byB0aGUgcGFnZWJsb2NrX25yX3BhZ2VzID0gMHgy MDAsIHRoZW4gdGhlCj4gPiA+IHN0YXJ0X3BmbixlbmRfcGZuIHBhc3NlZCB0byBtb3ZlX2ZyZWVw YWdlcygpIHdpbGwgYmUgW2RlNjAwLCBkZTdmZl0sCj4gPiA+IGJ1dCB0aGUgcmFuZ2Ugb2YgW2Rl NjAwLGRlNzAwXSB3aXRob3V0IOKAmHN0cnVjdCBwYWdlJyB3aWxsIGxlYWQgdG8KPiA+ID4gdGhp cyBwYW5pYyB3aGVuIHBmbl92YWxpZF93aXRoaW4gbm90IGVuYWJsZWQgaWYgbm8gSE9MRVNfSU5f Wk9ORSwKPiA+ID4gYW5kIHRoZSBzYW1lIGlzc3VlIHdpbGwgb2NjdXJyZWQgaW4gaXNvbGF0ZV9m cmVlcGFnZXNfYmxvY2soKSwgbWF5YmUKPiA+IAo+ID4gSSB0aGluayB5b3VyIGFuYWx5c2lzIGlz IGNvcnJlY3QgZXhjZXB0IG9uZSBtaW5vciBkZXRhaWwuIFdpdGggdGhlICNpZmRlZgo+ID4gZml4 IEkndmUgcHJvcG9zZWQgZWFybGllcmkgWzFdIHRoZSBtZW1tYXAgZm9yIFsweGRlNjAwLCAweGRl NzAwXSBzaG91bGQgbm90Cj4gPiBiZSBmcmVlZCBzbyB0aGVyZSBzaG91bGQgYmUgYSBzdHJ1Y3Qg cGFnZS4gRGlkIHlvdSBjaGVjayB3aGF0IHBhcnRzIG9mIHRoZQo+ID4gbWVtbWFwIGFyZSBhY3R1 YWxseSBmcmVlZCB3aXRoIHRoaXMgcGF0Y2ggYXBwbGllZD8KPiA+IFdvdWxkIHlvdSBnZXQgYSBw YW5pYyBpZiB5b3UgYWRkCj4gPiAKPiA+IAlkdW1wX3BhZ2UocGZuX3RvX3BhZ2UoMHhkZTYwMCks ICIiKTsKPiA+IAo+ID4gc2F5LCBpbiB0aGUgZW5kIG9mIG1lbWJsb2NrX2ZyZWVfYWxsKCk/Cj4g Cj4gVGhlIG1lbW9yeSBpcyBub3QgY29udGludW91cywgc2VlIE1FTUJMT0NLOgo+ICBtZW1vcnkg c2l6ZSA9IDB4NGMwZmZmZmYgcmVzZXJ2ZWQgc2l6ZSA9IDB4MDI3ZWYwNTgKPiAgbWVtb3J5LmNu dCAgPSAweGEKPiAgbWVtb3J5WzB4MF0gICAgWzB4ODBhMDAwMDAtMHg4NTVmZmZmZl0sIDB4MDRj MDAwMDAgYnl0ZXMgZmxhZ3M6IDB4MAo+ICBtZW1vcnlbMHgxXSAgICBbMHg4NmEwMDAwMC0weDg3 ZGZmZmZmXSwgMHgwMTQwMDAwMCBieXRlcyBmbGFnczogMHgwCj4gIG1lbW9yeVsweDJdICAgIFsw eDhiZDAwMDAwLTB4OGM0ZmZmZmZdLCAweDAwODAwMDAwIGJ5dGVzIGZsYWdzOiAweDAKPiAgbWVt b3J5WzB4M10gICAgWzB4OGUzMDAwMDAtMHg4ZWNmZmZmZl0sIDB4MDBhMDAwMDAgYnl0ZXMgZmxh Z3M6IDB4MAo+ICBtZW1vcnlbMHg0XSAgICBbMHg5MGQwMDAwMC0weGJmZmZmZmZmXSwgMHgyZjMw MDAwMCBieXRlcyBmbGFnczogMHgwCj4gIG1lbW9yeVsweDVdICAgIFsweGNjMDAwMDAwLTB4ZGM5 ZmZmZmZdLCAweDEwYTAwMDAwIGJ5dGVzIGZsYWdzOiAweDAKPiAgbWVtb3J5WzB4Nl0gICAgWzB4 ZGU3MDAwMDAtMHhkZTlmZmZmZl0sIDB4MDAzMDAwMDAgYnl0ZXMgZmxhZ3M6IDB4MAo+IC4uLgo+ IAo+IFRoZSBwZm5fcmFuZ2UgWzB4ZGU2MDAsMHhkZTcwMF0gPT4gYWRkcl9yYW5nZSBbMHhkZTYw MDAwMCwweGRlNzAwMDAwXQo+IGlzIG5vdCBhdmFpbGFibGUgbWVtb3J5LCBhbmQgd2Ugd29uJ3Qg Y3JlYXRlIG1lbW1hcCAsIHNvIHdpdGggb3Igd2l0aG91dAo+IHlvdXIgcGF0Y2gsIHdlIGNhbid0 IHNlZSB0aGUgcmFuZ2UgaW4gZnJlZV9tZW1tYXAoKSwgcmlnaHQ/CiAKClRoaXMgaXMgbm90IGF2 YWlsYWJsZSBtZW1vcnkgYW5kIHdlIHdvbid0IHNlZSB0aGUgcmVhbmdlIGluIGZyZWVfbWVtbWFw KCksCmJ1dCB3ZSBzdGlsbCBzaG91bGQgY3JlYXRlIG1lbW1hcCBmb3IgaXQgYW5kIHRoYXQncyB3 aGF0IG15IHBhdGNoIHRyaWVkIHRvCmRvLgoKVGhlcmUgYXJlIGEgbG90IG9mIHBsYWNlcyBpbiBj b3JlIG1tIHRoYXQgb3BlcmF0ZSBvbiBwYWdlYmxvY2tzIGFuZApmcmVlX3VudXNlZF9tZW1tYXAo KSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgYW55IHBhZ2VibG9jayBoYXMgYSB2YWxpZCBtZW1vcnkK bWFwLgoKQ3VycmVudGx5LCB0aGF0J3Mgbm90IHRoZSBjYXNlIHdoZW4gU1BBUlNFTUVNPXkgYW5k IG15IHBhdGNoIHRyaWVkIHRvIGZpeAppdC4KCkNhbiB5b3UgcGxlYXNlIHNlbmQgbG9nIHdpdGgg bXkgcGF0Y2ggYXBwbGllZCBhbmQgd2l0aCB0aGUgcHJpbnRpbmcgb2YKcmFuZ2VzIHRoYXQgYXJl IGZyZWVkIGluIGZyZWVfdW51c2VkX21lbW1hcCgpIHlvdSd2ZSB1c2VkIGluIHByZXZpb3VzCm1h aWxzPwogCj4gPiA+IHRoZXJlIGFyZSBzb21lIHNjZW5lLCBzbyBJIHNlbGVjdCBIT0xFU19JTl9a T05FIGluIEFSQ0hfSElTSShBUk0pIHRvIHNvbHZlCj4gPiA+IHRoaXMgaXNzdWUgaW4gb3VyIDUu MTAsIHNob3VsZCB3ZSBzZWxlY3QgSE9MRVNfSU5fWk9ORSBpbiBhbGwgQVJNIG9yIG9ubHkgaW4K PiA+ID4gQVJDSF9ISVNJLCBhbnkgYmV0dGVyIHNvbHV0aW9uPyAgVGhhbmtzLgo+ID4gCj4gPiBJ IGRvbid0IHRoaW5rIHRoYXQgSE9MRVNfSU5fWk9ORSBpcyB0aGUgcmlnaHQgc29sdXRpb24uIEkg YmVsaWV2ZSB0aGF0IHdlCj4gPiBtdXN0IGtlZXAgdGhlIG1lbW9yeSBtYXAgYWxpZ25lZCBvbiBw YWdlYmxvY2sgYm91bmRhcmllcy4gVGhhdCdzIHN1cmVseSBub3QgdGhlCj4gPiBjYXNlIGZvciBT UEFSU0VNRU0gYXMgb2Ygbm93LCBhbmQgaWYgbXkgZml4IGlzIG5vdCBlbm91Z2ggd2UgbmVlZCB0 byBmaW5kCj4gPiB3aGVyZSBpdCB3ZW50IHdyb25nLgo+ID4gCj4gPiBCZXNpZGVzLCBJJ2Qgc2F5 IHRoYXQgaWYgaXQgaXMgcG9zc2libGUgdG8gdXBkYXRlIHlvdXIgZmlybXdhcmUgdG8gbWFrZSB0 aGUKPiA+IG1lbW9yeSBsYXlvdXQgcmVwb3J0ZWQgdG8gdGhlIGtlcm5lbCBsZXNzLCBobW0sIGVz b3RlcmljLCB5b3Ugd291bGQgaGl0Cj4gPiBsZXNzIGNvcm5lciBjYXNlcy4KPiAKPiBTb3JyeSwg bWVtb3J5IGxheW91dCBpcyBjdXN0b21pemVkIGFuZCB3ZSBjYW4ndCBjaGFuZ2UgaXQsIHNvbWUg bWVtb3J5IGlzCj4gZm9yIHNwZWNpYWwgcHVycG9zZXMgYnkgb3VyIHByb2R1Y3Rpb24uCiAKSSB1 bmRlcnN0YW5kIHRoYXQgdGhpcyBtZW1vcnkgY2Fubm90IGJlIHVzZWQgYnkgTGludXgsIGJ1dCB0 aGUgZmlybXdhcmUgbWF5CnN1cHBseSB0aGUga2VybmVsIHdpdGggYWN0dWFsIHBoeXNpY2FsIG1l bW9yeSBsYXlvdXQgYW5kIHRoZW4gbWFyayBhbGwKdGhlIHNwZWNpYWwgcHVycG9zZSBtZW1vcnkg dGhhdCBrZXJuZWwgc2hvdWxkIG5vdCB0b3VjaCBhcyByZXNlcnZlZC4KCj4gPiBbMV0gaHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC9ZSXBZOFRYQ1NjN0xmYTJaQGtlcm5lbC5vcmcKPiA+IAoK LS0gClNpbmNlcmVseSB5b3VycywKTWlrZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK