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.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 6191EC433E2 for ; Wed, 3 Jun 2020 19:47:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 38EEA20734 for ; Wed, 3 Jun 2020 19:47:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UbMGy8Pt" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726116AbgFCTrd (ORCPT ); Wed, 3 Jun 2020 15:47:33 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:35393 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725985AbgFCTrc (ORCPT ); Wed, 3 Jun 2020 15:47:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591213649; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MpiPTiZE4QKP6LGRxdgsc2DNZHl5BTlPB8Z9SBWQ1V8=; b=UbMGy8PtAEjprmtdhcgVNxehSiuWSscyyKwSvtjXJlA2D9n3vyTnXdKE9wc1njNzvfx8/o 3hujiprWEBPkQD/8xnKHf05aRv5AFKwMovgE/VLp6pSM39BzF3RTQnj+NSGuXTBCD/GjJF q4ssGgvdrSCxcF6ySFO3/tWCpmNhdDc= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-307-kU_y6cE6M2-MNP8IVTt5iw-1; Wed, 03 Jun 2020 15:47:21 -0400 X-MC-Unique: kU_y6cE6M2-MNP8IVTt5iw-1 Received: by mail-qv1-f72.google.com with SMTP id t20so2483993qvy.16 for ; Wed, 03 Jun 2020 12:47:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=MpiPTiZE4QKP6LGRxdgsc2DNZHl5BTlPB8Z9SBWQ1V8=; b=Dqt5iscYbi2YRY6/cs1Ot0dyKIwZ48zqc7IqivrTj9yfhQohq7A9qq5JaVHNmfDHg8 ohZv9CLNTJVs5X3vffpMqGpn3bfabFGI1ZIHPAcV6fLIBeGa34wxOvYx+BXOm/RT4Mhq 0mtwlknLD0BX2YCmqpm7isoLLjM2bSaePlSnYT0bWytK0WcUYiDMxr2jzwmo5Y9QkDUQ 4POcGYF7nzIF5p69sjKwxi+0VpCXppXPS+3N4QvT0iUozWF+JLbbKvwwe8nr/EgRKt0F TxCkz2pnHI+k8Wb2JvtohIONXVG1KFFi0BcVWhFhXXybjwV1d4K/eG+4+kAAit45UEIx 9lyA== X-Gm-Message-State: AOAM530zeDXH4hsi0nbPItGl9ADSRH8G8g41+wU5leMlI6/fgBmrD0Fn ynELoKyNzFKem9cSDQuhyNKvZznl8In06P2AsE4nihK7kUs9YwZmBUWOvOrtIsA1wfyAK3mdg/Z 9nA8jjGRU99dJ2gu7xVjuiFZNGPBkyAAog/UhIvXb X-Received: by 2002:aed:2d44:: with SMTP id h62mr1027614qtd.167.1591213640536; Wed, 03 Jun 2020 12:47:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1Io1aYd8IlFBCtau1L5drogfSTHZcw8fgoyzbdNnIk9SmSkewQ442qi8Pp7FEqs5YJBjc4zyfQsZo9A24+1A= X-Received: by 2002:aed:2d44:: with SMTP id h62mr1027568qtd.167.1591213640117; Wed, 03 Jun 2020 12:47:20 -0700 (PDT) MIME-Version: 1.0 References: <20200521093805.64398-1-chenzhou10@huawei.com> <303695cc-d3ea-9f51-1489-07d27d4253d4@oracle.com> <6EA47B07-5119-49DF-9980-12A2066F22CA@oracle.com> <8463464e-5461-f328-621c-bacc6a3b88dd@huawei.com> <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> In-Reply-To: <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> From: Bhupesh Sharma Date: Thu, 4 Jun 2020 01:17:06 +0530 Message-ID: Subject: Re: [PATCH v8 0/5] support reserving crashkernel above 4G on arm64 kdump To: John Donnelly Cc: chenzhou , Simon Horman , Devicetree List , Arnd Bergmann , Baoquan He , Linux Doc Mailing List , Catalin Marinas , guohanjun@huawei.com, kexec mailing list , Linux Kernel Mailing List , Will Deacon , Rob Herring , James Morse , nsaenzjulienne@suse.de, Prabhakar Kushwaha , Thomas Gleixner , Prabhakar Kushwaha , RuiRui Yang , Ingo Molnar , linux-arm-kernel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, On Wed, Jun 3, 2020 at 9:03 PM John Donnelly w= rote: > > > > > On Jun 3, 2020, at 8:20 AM, chenzhou wrote: > > > > Hi, > > > > > > On 2020/6/3 19:47, Prabhakar Kushwaha wrote: > >> Hi Chen, > >> > >> On Tue, Jun 2, 2020 at 8:12 PM John Donnelly wrote: > >>> > >>> > >>>> On Jun 2, 2020, at 12:38 AM, Prabhakar Kushwaha wrote: > >>>> > >>>> On Tue, Jun 2, 2020 at 3:29 AM John Donnelly wrote: > >>>>> Hi . See below ! > >>>>> > >>>>>> On Jun 1, 2020, at 4:02 PM, Bhupesh Sharma w= rote: > >>>>>> > >>>>>> Hi John, > >>>>>> > >>>>>> On Tue, Jun 2, 2020 at 1:01 AM John Donnelly wrote: > >>>>>>> Hi, > >>>>>>> > >>>>>>> > >>>>>>> On 6/1/20 7:02 AM, Prabhakar Kushwaha wrote: > >>>>>>>> Hi Chen, > >>>>>>>> > >>>>>>>> On Thu, May 21, 2020 at 3:05 PM Chen Zhou wrote: > >>>>>>>>> This patch series enable reserving crashkernel above 4G in arm6= 4. > >>>>>>>>> > >>>>>>>>> There are following issues in arm64 kdump: > >>>>>>>>> 1. We use crashkernel=3DX to reserve crashkernel below 4G, whic= h will fail > >>>>>>>>> when there is no enough low memory. > >>>>>>>>> 2. Currently, crashkernel=3DY@X can be used to reserve crashker= nel above 4G, > >>>>>>>>> in this case, if swiotlb or DMA buffers are required, crash dum= p kernel > >>>>>>>>> will boot failure because there is no low memory available for = allocation. > >>>>>>>>> > >>>>>>>> We are getting "warn_alloc" [1] warning during boot of kdump ker= nel > >>>>>>>> with bootargs as [2] of primary kernel. > >>>>>>>> This error observed on ThunderX2 ARM64 platform. > >>>>>>>> > >>>>>>>> It is observed with latest upstream tag (v5.7-rc3) with this pat= ch set > >>>>>>>> and https://urldefense.com/v3/__https://lists.infradead.org/pipe= rmail/kexec/2020-May/025128.html__;!!GqivPVa7Brio!LnTSARkCt0V0FozR0KmqooaH5= ADtdXvs3mPdP3KRVqALmvSK2VmCkIPIhsaxbiIAAlzu$ > >>>>>>>> Also **without** this patch-set > >>>>>>>> "https://urldefense.com/v3/__https://www.spinics.net/lists/arm-k= ernel/msg806882.html__;!!GqivPVa7Brio!LnTSARkCt0V0FozR0KmqooaH5ADtdXvs3mPdP= 3KRVqALmvSK2VmCkIPIhsaxbjC6ujMA$" > >>>>>>>> > >>>>>>>> This issue comes whenever crashkernel memory is reserved after 0= xc000_0000. > >>>>>>>> More details discussed earlier in > >>>>>>>> https://urldefense.com/v3/__https://www.spinics.net/lists/arm-ke= rnel/msg806882.html__;!!GqivPVa7Brio!LnTSARkCt0V0FozR0KmqooaH5ADtdXvs3mPdP3= KRVqALmvSK2VmCkIPIhsaxbjC6ujMA$ without any > >>>>>>>> solution > >>>>>>>> > >>>>>>>> This patch-set is expected to solve similar kind of issue. > >>>>>>>> i.e. low memory is only targeted for DMA, swiotlb; So above ment= ioned > >>>>>>>> observation should be considered/fixed. . > >>>>>>>> > >>>>>>>> --pk > >>>>>>>> > >>>>>>>> [1] > >>>>>>>> [ 30.366695] DMI: Cavium Inc. Saber/Saber, BIOS > >>>>>>>> TX2-FW-Release-3.1-build_01-2803-g74253a541a mm/dd/yyyy > >>>>>>>> [ 30.367696] NET: Registered protocol family 16 > >>>>>>>> [ 30.369973] swapper/0: page allocation failure: order:6, > >>>>>>>> mode:0x1(GFP_DMA), nodemask=3D(null),cpuset=3D/,mems_allowed=3D0 > >>>>>>>> [ 30.369980] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.0-r= c3+ #121 > >>>>>>>> [ 30.369981] Hardware name: Cavium Inc. Saber/Saber, BIOS > >>>>>>>> TX2-FW-Release-3.1-build_01-2803-g74253a541a mm/dd/yyyy > >>>>>>>> [ 30.369984] Call trace: > >>>>>>>> [ 30.369989] dump_backtrace+0x0/0x1f8 > >>>>>>>> [ 30.369991] show_stack+0x20/0x30 > >>>>>>>> [ 30.369997] dump_stack+0xc0/0x10c > >>>>>>>> [ 30.370001] warn_alloc+0x10c/0x178 > >>>>>>>> [ 30.370004] __alloc_pages_slowpath.constprop.111+0xb10/0xb50 > >>>>>>>> [ 30.370006] __alloc_pages_nodemask+0x2b4/0x300 > >>>>>>>> [ 30.370008] alloc_page_interleave+0x24/0x98 > >>>>>>>> [ 30.370011] alloc_pages_current+0xe4/0x108 > >>>>>>>> [ 30.370017] dma_atomic_pool_init+0x44/0x1a4 > >>>>>>>> [ 30.370020] do_one_initcall+0x54/0x228 > >>>>>>>> [ 30.370027] kernel_init_freeable+0x228/0x2cc > >>>>>>>> [ 30.370031] kernel_init+0x1c/0x110 > >>>>>>>> [ 30.370034] ret_from_fork+0x10/0x18 > >>>>>>>> [ 30.370036] Mem-Info: > >>>>>>>> [ 30.370064] active_anon:0 inactive_anon:0 isolated_anon:0 > >>>>>>>> [ 30.370064] active_file:0 inactive_file:0 isolated_file:0 > >>>>>>>> [ 30.370064] unevictable:0 dirty:0 writeback:0 unstable:0 > >>>>>>>> [ 30.370064] slab_reclaimable:34 slab_unreclaimable:4438 > >>>>>>>> [ 30.370064] mapped:0 shmem:0 pagetables:14 bounce:0 > >>>>>>>> [ 30.370064] free:1537719 free_pcp:219 free_cma:0 > >>>>>>>> [ 30.370070] Node 0 active_anon:0kB inactive_anon:0kB > >>>>>>>> active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon)= :0kB > >>>>>>>> isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB > >>>>>>>> shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 0kB writeback_tmp:= 0kB > >>>>>>>> unstable:0kB all_unreclaimable? no > >>>>>>>> [ 30.370073] Node 1 active_anon:0kB inactive_anon:0kB > >>>>>>>> active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon)= :0kB > >>>>>>>> isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB > >>>>>>>> shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 0kB writeback_tmp:= 0kB > >>>>>>>> unstable:0kB all_unreclaimable? no > >>>>>>>> [ 30.370079] Node 0 DMA free:0kB min:0kB low:0kB high:0kB > >>>>>>>> reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB > >>>>>>>> active_file:0kB inactive_file:0kB unevictable:0kB writepending:0= kB > >>>>>>>> present:128kB managed:0kB mlocked:0kB kernel_stack:0kB pagetable= s:0kB > >>>>>>>> bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > >>>>>>>> [ 30.370084] lowmem_reserve[]: 0 250 6063 6063 > >>>>>>>> [ 30.370090] Node 0 DMA32 free:256000kB min:408kB low:664kB > >>>>>>>> high:920kB reserved_highatomic:0KB active_anon:0kB inactive_anon= :0kB > >>>>>>>> active_file:0kB inactive_file:0kB unevictable:0kB writepending:0= kB > >>>>>>>> present:269700kB managed:256000kB mlocked:0kB kernel_stack:0kB > >>>>>>>> pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0k= B > >>>>>>>> [ 30.370094] lowmem_reserve[]: 0 0 5813 5813 > >>>>>>>> [ 30.370100] Node 0 Normal free:5894876kB min:9552kB low:15504= kB > >>>>>>>> high:21456kB reserved_highatomic:0KB active_anon:0kB inactive_an= on:0kB > >>>>>>>> active_file:0kB inactive_file:0kB unevictable:0kB writepending:0= kB > >>>>>>>> present:8388608kB managed:5953112kB mlocked:0kB kernel_stack:216= 72kB > >>>>>>>> pagetables:56kB bounce:0kB free_pcp:876kB local_pcp:176kB free_c= ma:0kB > >>>>>>>> [ 30.370104] lowmem_reserve[]: 0 0 0 0 > >>>>>>>> [ 30.370107] Node 0 DMA: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*12= 8kB > >>>>>>>> 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB =3D 0kB > >>>>>>>> [ 30.370113] Node 0 DMA32: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*= 128kB > >>>>>>>> 0*256kB 0*512kB 0*1024kB 1*2048kB (M) 62*4096kB (M) =3D 256000kB > >>>>>>>> [ 30.370119] Node 0 Normal: 2*4kB (M) 3*8kB (ME) 2*16kB (UE) 3= *32kB > >>>>>>>> (UM) 1*64kB (U) 2*128kB (M) 2*256kB (ME) 3*512kB (ME) 3*1024kB (= ME) > >>>>>>>> 3*2048kB (UME) 1436*4096kB (M) =3D 5893600kB > >>>>>>>> [ 30.370129] Node 0 hugepages_total=3D0 hugepages_free=3D0 > >>>>>>>> hugepages_surp=3D0 hugepages_size=3D1048576kB > >>>>>>>> [ 30.370130] 0 total pagecache pages > >>>>>>>> [ 30.370132] 0 pages in swap cache > >>>>>>>> [ 30.370134] Swap cache stats: add 0, delete 0, find 0/0 > >>>>>>>> [ 30.370135] Free swap =3D 0kB > >>>>>>>> [ 30.370136] Total swap =3D 0kB > >>>>>>>> [ 30.370137] 2164609 pages RAM > >>>>>>>> [ 30.370139] 0 pages HighMem/MovableOnly > >>>>>>>> [ 30.370140] 612331 pages reserved > >>>>>>>> [ 30.370141] 0 pages hwpoisoned > >>>>>>>> [ 30.370143] DMA: failed to allocate 256 KiB pool for atomic > >>>>>>>> coherent allocation > >>>>>>> > >>>>>>> During my testing I saw the same error and Chen's solution corre= cted it . > >>>>>> Which combination you are using on your side? I am using Prabhakar= 's > >>>>>> suggested environment and can reproduce the issue > >>>>>> with or without Chen's crashkernel support above 4G patchset. > >>>>>> > >>>>>> I am also using a ThunderX2 platform with latest makedumpfile code= and > >>>>>> kexec-tools (with the suggested patch > >>>>>> ). > >>>>>> > >>>>>> Thanks, > >>>>>> Bhupesh > >>>>> > >>>>> I did this activity 5 months ago and I have moved on to other activ= ities. My DMA failures were related to PCI devices that could not be enumer= ated because low-DMA space was not available when crashkernel was moved a= bove 4G; I don=E2=80=99t recall the exact platform. > >>>>> > >>>>> > >>>>> > >>>>> For this failure , > >>>>> > >>>>>>>> DMA: failed to allocate 256 KiB pool for atomic > >>>>>>>> coherent allocation > >>>>> > >>>>> Is due to : > >>>>> > >>>>> > >>>>> 3618082c > >>>>> ("arm64 use both ZONE_DMA and ZONE_DMA32") > >>>>> > >>>>> With the introduction of ZONE_DMA to support the Raspberry DMA > >>>>> region below 1G, the crashkernel is placed in the upper 4G > >>>>> ZONE_DMA_32 region. Since the crashkernel does not have access > >>>>> to the ZONE_DMA region, it prints out call trace during bootup. > >>>>> > >>>>> It is due to having this CONFIG item ON : > >>>>> > >>>>> > >>>>> CONFIG_ZONE_DMA=3Dy > >>>>> > >>>>> Turning off ZONE_DMA fixes a issue and Raspberry PI 4 will > >>>>> use the device tree to specify memory below 1G. > >>>>> > >>>>> > >>>> Disabling ZONE_DMA is temporary solution. We may need proper soluti= on > >>> > >>> Perhaps the Raspberry platform configuration dependencies need separa= ted from =E2=80=9Cserver class=E2=80=9D Arm equipment ? Or auto-configur= ed on boot ? Consult an expert ;-) > >>> > >>> > >>> > >>>>> I would like to see Chen=E2=80=99s feature added , perhaps as EXPER= IMENTAL, so we can get some configuration testing done on it. It correct= s having a DMA zone in low memory while crash-kernel is above 4GB. This ha= s been going on for a year now. > >>>> I will also like this patch to be added in Linux as early as possibl= e. > >>>> > >>>> Issue mentioned by me happens with or without this patch. > >>>> > >>>> This patch-set can consider fixing because it uses low memory for DM= A > >>>> & swiotlb only. > >>>> We can consider restricting crashkernel within the required range li= ke below > >>>> > >>>> diff --git a/kernel/crash_core.c b/kernel/crash_core.c > >>>> index 7f9e5a6dc48c..bd67b90d35bd 100644 > >>>> --- a/kernel/crash_core.c > >>>> +++ b/kernel/crash_core.c > >>>> @@ -354,7 +354,7 @@ int __init reserve_crashkernel_low(void) > >>>> return 0; > >>>> } > >>>> > >>>> - low_base =3D memblock_find_in_range(0, 1ULL << 32, low_size,= CRASH_ALIGN); > >>>> + low_base =3D memblock_find_in_range(0,0xc0000000, low_size, = CRASH_ALIGN); > >>>> if (!low_base) { > >>>> pr_err("Cannot reserve %ldMB crashkernel low memory, > >>>> please try smaller size.\n", > >>>> (unsigned long)(low_size >> 20)); > >>>> > >>>> > >>> I suspect 0xc0000000 would need to be a CONFIG item and not har= d-coded. > >>> > >> if you consider this as valid change, can you please incorporate as > >> part of your patch-set. > > > > After commit 1a8e1cef7 ("arm64: use both ZONE_DMA and ZONE_DMA32")=EF= =BC=8Cthe 0-4G memory is splited > > to DMA [mem 0x0000000000000000-0x000000003fffffff] and DMA32 [mem 0x000= 0000040000000-0x00000000ffffffff] on arm64. > > > > From the above discussion, on your platform, the low crashkernel fall i= n DMA32 region, but your environment needs to access DMA > > region, so there is the call trace. > > > > I have a question, why do you choose 0xc0000000 here? > > > > Besides, this is common code, we also need to consider about x86. > > > > + nsaenzjulienne@suse.de > > Exactly . This is why it needs to be a CONFIG option for Raspberry ..= , or device tree option. > > > We could revert 1a8e1cef7 since it broke Arm kdump too. Well, unfortunately the patch for commit 1a8e1cef7603 ("arm64: use both ZONE_DMA and ZONE_DMA32") was not Cc'ed to the kexec mailing list, thus we couldn't get many eyes on it for a thorough review from kexec/kdump p-o-v. Also we historically never had distinction in common arch code on the basis of the intended end use-case: embedded, server or automotive, so I am not sure introducing a Raspberry specific CONFIG option would be a good idea. So, rather than reverting the patch, we can look at addressing the same properly this time - especially from a kdump p-o-v. This issue has been reported by some Red Hat arm64 partners with upstream kernel also and as we have noticed in the past as well, hardcoding the placement of the crashkernel base address (unless the base address is specified by a crashkernel=3DX@Y like bootargs) is also not a portable suggestion. I am working on a possible fix and will have more updates on the same in a day-or-two. Thanks, Bhupesh 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=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 5608DC433E3 for ; Wed, 3 Jun 2020 19:47:37 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 3055D20734 for ; Wed, 3 Jun 2020 19:47:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kzUkdzw8"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UbMGy8Pt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3055D20734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QLxuthuDuoU97Re7ilIcM0FNQ7QhDy5uxHtHbGUKuDo=; b=kzUkdzw8dOveq7 tWnJ7ijW3/6xmHmrNoKQZyjCw1zqis5Srtzu+kVEsyQoR+8gRr7jl+op4Fa71OzGJXo80Il7/y9Bc Tknw6I3+XOIBxwl9xQ5BYyTam6oZV9qv8O4jySKFT1Okid3wwWJtYCfPZ80Kc4TZpvioOnOlZ/CpP ckPkiodgFmSrjnrIqu1IHYbeUjUDtfYccGMNr2O6yAkF4aEz9RcGNu0aGf0bUabAi3rSECuOUFZwY rrsgcVX2zb52fREOBEzsAskB79d5MM7tCMcT9p1CL/eGNXrgDUwqLYZ4XMeMcNgl0yCr7qp79+s1U sjeXRT5rCgftL1g8mjLQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jgZMO-0000dA-P4; Wed, 03 Jun 2020 19:47:36 +0000 Received: from us-smtp-2.mimecast.com ([205.139.110.61] helo=us-smtp-delivery-1.mimecast.com) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jgZMK-0000cG-9H for linux-arm-kernel@lists.infradead.org; Wed, 03 Jun 2020 19:47:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591213649; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MpiPTiZE4QKP6LGRxdgsc2DNZHl5BTlPB8Z9SBWQ1V8=; b=UbMGy8PtAEjprmtdhcgVNxehSiuWSscyyKwSvtjXJlA2D9n3vyTnXdKE9wc1njNzvfx8/o 3hujiprWEBPkQD/8xnKHf05aRv5AFKwMovgE/VLp6pSM39BzF3RTQnj+NSGuXTBCD/GjJF q4ssGgvdrSCxcF6ySFO3/tWCpmNhdDc= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-74-shVPZ65eMbSsln4C2Jbf4A-1; Wed, 03 Jun 2020 15:47:21 -0400 X-MC-Unique: shVPZ65eMbSsln4C2Jbf4A-1 Received: by mail-qv1-f72.google.com with SMTP id s20so2494817qvw.12 for ; Wed, 03 Jun 2020 12:47:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=MpiPTiZE4QKP6LGRxdgsc2DNZHl5BTlPB8Z9SBWQ1V8=; b=inyN+ldV3kMMV44dAfS77ZTSiTcJUUzNuMlLtTzEtIge3hm40YHAovMCWY5/Gg+Js4 +xOuA82YUw2GF6sqpulAnDGk2cQbrbgyxLiAO4c+ZSmlw+cfGesV+6PlGdX8ry/fq9eD fWDxi6fjJ0TZ5FgQuHAt4qUB6c3gzME7lFlmSUHiWZucKyoO4PewhnyV/gvmN1XMubKl 4RnAwm2GWWFnA4J9lZOUgBJj0smMIeCjZyi2x+Xzk5xNiQGGJ46KeR82rqlLX461GfFC 3xJHjLWmM+nLcdeU2Y6V38GszK4/+TqEXlNdK0YHXd3n7JQAqnwFWNq3ZWVljTM2xKb/ TwNg== X-Gm-Message-State: AOAM531fBPUd9Bk1O55/fvyZmfPjwT0eWPsn59YWuo3JD5H/n9vOSmyq Y6CcCCBgUBznVxTVLiI713la6fCpkHJnCaJ3mba7ztjYgM/MBJ21ngWJmMaLFgC8MCp3JtWs3qk W8OB8VLD36Nn6deFfbaXurMBIY05Ty34H4KSlcKY8olpjUinVmqg= X-Received: by 2002:aed:2d44:: with SMTP id h62mr1027601qtd.167.1591213640524; Wed, 03 Jun 2020 12:47:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1Io1aYd8IlFBCtau1L5drogfSTHZcw8fgoyzbdNnIk9SmSkewQ442qi8Pp7FEqs5YJBjc4zyfQsZo9A24+1A= X-Received: by 2002:aed:2d44:: with SMTP id h62mr1027568qtd.167.1591213640117; Wed, 03 Jun 2020 12:47:20 -0700 (PDT) MIME-Version: 1.0 References: <20200521093805.64398-1-chenzhou10@huawei.com> <303695cc-d3ea-9f51-1489-07d27d4253d4@oracle.com> <6EA47B07-5119-49DF-9980-12A2066F22CA@oracle.com> <8463464e-5461-f328-621c-bacc6a3b88dd@huawei.com> <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> In-Reply-To: <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> From: Bhupesh Sharma Date: Thu, 4 Jun 2020 01:17:06 +0530 Message-ID: Subject: Re: [PATCH v8 0/5] support reserving crashkernel above 4G on arm64 kdump To: John Donnelly X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200603_124732_475315_7F6C5B08 X-CRM114-Status: GOOD ( 30.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Devicetree List , Arnd Bergmann , Baoquan He , Linux Doc Mailing List , chenzhou , Catalin Marinas , RuiRui Yang , Prabhakar Kushwaha , kexec mailing list , Linux Kernel Mailing List , Rob Herring , Simon Horman , James Morse , linux-arm-kernel , guohanjun@huawei.com, Thomas Gleixner , Prabhakar Kushwaha , Will Deacon , Ingo Molnar , nsaenzjulienne@suse.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQWxsLAoKT24gV2VkLCBKdW4gMywgMjAyMCBhdCA5OjAzIFBNIEpvaG4gRG9ubmVsbHkgPGpv aG4ucC5kb25uZWxseUBvcmFjbGUuY29tPiB3cm90ZToKPgo+Cj4KPiA+IE9uIEp1biAzLCAyMDIw LCBhdCA4OjIwIEFNLCBjaGVuemhvdSA8Y2hlbnpob3UxMEBodWF3ZWkuY29tPiB3cm90ZToKPiA+ Cj4gPiBIaSwKPiA+Cj4gPgo+ID4gT24gMjAyMC82LzMgMTk6NDcsIFByYWJoYWthciBLdXNod2Fo YSB3cm90ZToKPiA+PiBIaSBDaGVuLAo+ID4+Cj4gPj4gT24gVHVlLCBKdW4gMiwgMjAyMCBhdCA4 OjEyIFBNIEpvaG4gRG9ubmVsbHkgPGpvaG4ucC5kb25uZWxseUBvcmFjbGUuY29tPiB3cm90ZToK PiA+Pj4KPiA+Pj4KPiA+Pj4+IE9uIEp1biAyLCAyMDIwLCBhdCAxMjozOCBBTSwgUHJhYmhha2Fy IEt1c2h3YWhhIDxwcmFiaGFrYXIucGtpbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4+Pj4KPiA+Pj4+ IE9uIFR1ZSwgSnVuIDIsIDIwMjAgYXQgMzoyOSBBTSBKb2huIERvbm5lbGx5IDxqb2huLnAuZG9u bmVsbHlAb3JhY2xlLmNvbT4gd3JvdGU6Cj4gPj4+Pj4gSGkgLiAgU2VlIGJlbG93ICEKPiA+Pj4+ Pgo+ID4+Pj4+PiBPbiBKdW4gMSwgMjAyMCwgYXQgNDowMiBQTSwgQmh1cGVzaCBTaGFybWEgPGJo c2hhcm1hQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4+Pj4+Pgo+ID4+Pj4+PiBIaSBKb2huLAo+ID4+ Pj4+Pgo+ID4+Pj4+PiBPbiBUdWUsIEp1biAyLCAyMDIwIGF0IDE6MDEgQU0gSm9obiBEb25uZWxs eSA8Sm9obi5QLmRvbm5lbGx5QG9yYWNsZS5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4gSGksCj4gPj4+ Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE9uIDYvMS8yMCA3OjAyIEFNLCBQcmFiaGFrYXIgS3Vz aHdhaGEgd3JvdGU6Cj4gPj4+Pj4+Pj4gSGkgQ2hlbiwKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IE9u IFRodSwgTWF5IDIxLCAyMDIwIGF0IDM6MDUgUE0gQ2hlbiBaaG91IDxjaGVuemhvdTEwQGh1YXdl aS5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4+PiBUaGlzIHBhdGNoIHNlcmllcyBlbmFibGUgcmVzZXJ2 aW5nIGNyYXNoa2VybmVsIGFib3ZlIDRHIGluIGFybTY0Lgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ PiBUaGVyZSBhcmUgZm9sbG93aW5nIGlzc3VlcyBpbiBhcm02NCBrZHVtcDoKPiA+Pj4+Pj4+Pj4g MS4gV2UgdXNlIGNyYXNoa2VybmVsPVggdG8gcmVzZXJ2ZSBjcmFzaGtlcm5lbCBiZWxvdyA0Rywg d2hpY2ggd2lsbCBmYWlsCj4gPj4+Pj4+Pj4+IHdoZW4gdGhlcmUgaXMgbm8gZW5vdWdoIGxvdyBt ZW1vcnkuCj4gPj4+Pj4+Pj4+IDIuIEN1cnJlbnRseSwgY3Jhc2hrZXJuZWw9WUBYIGNhbiBiZSB1 c2VkIHRvIHJlc2VydmUgY3Jhc2hrZXJuZWwgYWJvdmUgNEcsCj4gPj4+Pj4+Pj4+IGluIHRoaXMg Y2FzZSwgaWYgc3dpb3RsYiBvciBETUEgYnVmZmVycyBhcmUgcmVxdWlyZWQsIGNyYXNoIGR1bXAg a2VybmVsCj4gPj4+Pj4+Pj4+IHdpbGwgYm9vdCBmYWlsdXJlIGJlY2F1c2UgdGhlcmUgaXMgbm8g bG93IG1lbW9yeSBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24uCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+ Pj4gV2UgYXJlIGdldHRpbmcgIndhcm5fYWxsb2MiIFsxXSB3YXJuaW5nIGR1cmluZyBib290IG9m IGtkdW1wIGtlcm5lbAo+ID4+Pj4+Pj4+IHdpdGggYm9vdGFyZ3MgYXMgWzJdIG9mIHByaW1hcnkg a2VybmVsLgo+ID4+Pj4+Pj4+IFRoaXMgZXJyb3Igb2JzZXJ2ZWQgb24gVGh1bmRlclgyICBBUk02 NCBwbGF0Zm9ybS4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEl0IGlzIG9ic2VydmVkIHdpdGggbGF0 ZXN0IHVwc3RyZWFtIHRhZyAodjUuNy1yYzMpIHdpdGggdGhpcyBwYXRjaCBzZXQKPiA+Pj4+Pj4+ PiBhbmQgaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9waXBlcm1haWwva2V4ZWMvMjAyMC1NYXkvMDI1MTI4Lmh0bWxfXzshIUdxaXZQVmE3QnJp byFMblRTQVJrQ3QwVjBGb3pSMEttcW9vYUg1QUR0ZFh2czNtUGRQM0tSVnFBTG12U0syVm1Da0lQ SWhzYXhiaUlBQWx6dSQKPiA+Pj4+Pj4+PiBBbHNvICoqd2l0aG91dCoqIHRoaXMgcGF0Y2gtc2V0 Cj4gPj4+Pj4+Pj4gImh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL3d3dy5zcGlu aWNzLm5ldC9saXN0cy9hcm0ta2VybmVsL21zZzgwNjg4Mi5odG1sX187ISFHcWl2UFZhN0JyaW8h TG5UU0FSa0N0MFYwRm96UjBLbXFvb2FINUFEdGRYdnMzbVBkUDNLUlZxQUxtdlNLMlZtQ2tJUElo c2F4YmpDNnVqTUEkIgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gVGhpcyBpc3N1ZSBjb21lcyB3aGVu ZXZlciBjcmFzaGtlcm5lbCBtZW1vcnkgaXMgcmVzZXJ2ZWQgYWZ0ZXIgMHhjMDAwXzAwMDAuCj4g Pj4+Pj4+Pj4gTW9yZSBkZXRhaWxzIGRpc2N1c3NlZCBlYXJsaWVyIGluCj4gPj4+Pj4+Pj4gaHR0 cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2Fy bS1rZXJuZWwvbXNnODA2ODgyLmh0bWxfXzshIUdxaXZQVmE3QnJpbyFMblRTQVJrQ3QwVjBGb3pS MEttcW9vYUg1QUR0ZFh2czNtUGRQM0tSVnFBTG12U0syVm1Da0lQSWhzYXhiakM2dWpNQSQgIHdp dGhvdXQgYW55Cj4gPj4+Pj4+Pj4gc29sdXRpb24KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IFRoaXMg cGF0Y2gtc2V0IGlzIGV4cGVjdGVkIHRvIHNvbHZlIHNpbWlsYXIga2luZCBvZiBpc3N1ZS4KPiA+ Pj4+Pj4+PiBpLmUuIGxvdyBtZW1vcnkgaXMgb25seSB0YXJnZXRlZCBmb3IgRE1BLCBzd2lvdGxi OyBTbyBhYm92ZSBtZW50aW9uZWQKPiA+Pj4+Pj4+PiBvYnNlcnZhdGlvbiBzaG91bGQgYmUgY29u c2lkZXJlZC9maXhlZC4gLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gLS1wawo+ID4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4gWzFdCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2NjY5NV0gRE1JOiBDYXZpdW0gSW5jLiBT YWJlci9TYWJlciwgQklPUwo+ID4+Pj4+Pj4+IFRYMi1GVy1SZWxlYXNlLTMuMS1idWlsZF8wMS0y ODAzLWc3NDI1M2E1NDFhIG1tL2RkL3l5eXkKPiA+Pj4+Pj4+PiBbICAgMzAuMzY3Njk2XSBORVQ6 IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5IDE2Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk3M10g c3dhcHBlci8wOiBwYWdlIGFsbG9jYXRpb24gZmFpbHVyZTogb3JkZXI6NiwKPiA+Pj4+Pj4+PiBt b2RlOjB4MShHRlBfRE1BKSwgbm9kZW1hc2s9KG51bGwpLGNwdXNldD0vLG1lbXNfYWxsb3dlZD0w Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk4MF0gQ1BVOiAwIFBJRDogMSBDb21tOiBzd2FwcGVyLzAg Tm90IHRhaW50ZWQgNS43LjAtcmMzKyAjMTIxCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk4MV0gSGFy ZHdhcmUgbmFtZTogQ2F2aXVtIEluYy4gU2FiZXIvU2FiZXIsIEJJT1MKPiA+Pj4+Pj4+PiBUWDIt RlctUmVsZWFzZS0zLjEtYnVpbGRfMDEtMjgwMy1nNzQyNTNhNTQxYSBtbS9kZC95eXl5Cj4gPj4+ Pj4+Pj4gWyAgIDMwLjM2OTk4NF0gQ2FsbCB0cmFjZToKPiA+Pj4+Pj4+PiBbICAgMzAuMzY5OTg5 XSAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWY4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk5MV0gIHNo b3dfc3RhY2srMHgyMC8weDMwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk5N10gIGR1bXBfc3RhY2sr MHhjMC8weDEwYwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMDFdICB3YXJuX2FsbG9jKzB4MTBjLzB4 MTc4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAwNF0gIF9fYWxsb2NfcGFnZXNfc2xvd3BhdGguY29u c3Rwcm9wLjExMSsweGIxMC8weGI1MAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMDZdICBfX2FsbG9j X3BhZ2VzX25vZGVtYXNrKzB4MmI0LzB4MzAwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAwOF0gIGFs bG9jX3BhZ2VfaW50ZXJsZWF2ZSsweDI0LzB4OTgKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDExXSAg YWxsb2NfcGFnZXNfY3VycmVudCsweGU0LzB4MTA4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAxN10g IGRtYV9hdG9taWNfcG9vbF9pbml0KzB4NDQvMHgxYTQKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDIw XSAgZG9fb25lX2luaXRjYWxsKzB4NTQvMHgyMjgKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDI3XSAg a2VybmVsX2luaXRfZnJlZWFibGUrMHgyMjgvMHgyY2MKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDMx XSAga2VybmVsX2luaXQrMHgxYy8weDExMAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMzRdICByZXRf ZnJvbV9mb3JrKzB4MTAvMHgxOAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMzZdIE1lbS1JbmZvOgo+ ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdIGFjdGl2ZV9hbm9uOjAgaW5hY3RpdmVfYW5vbjowIGlz b2xhdGVkX2Fub246MAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdICBhY3RpdmVfZmlsZTowIGlu YWN0aXZlX2ZpbGU6MCBpc29sYXRlZF9maWxlOjAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDY0XSAg dW5ldmljdGFibGU6MCBkaXJ0eTowIHdyaXRlYmFjazowIHVuc3RhYmxlOjAKPiA+Pj4+Pj4+PiBb ICAgMzAuMzcwMDY0XSAgc2xhYl9yZWNsYWltYWJsZTozNCBzbGFiX3VucmVjbGFpbWFibGU6NDQz OAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdICBtYXBwZWQ6MCBzaG1lbTowIHBhZ2V0YWJsZXM6 MTQgYm91bmNlOjAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDY0XSAgZnJlZToxNTM3NzE5IGZyZWVf cGNwOjIxOSBmcmVlX2NtYTowCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDA3MF0gTm9kZSAwIGFjdGl2 ZV9hbm9uOjBrQiBpbmFjdGl2ZV9hbm9uOjBrQgo+ID4+Pj4+Pj4+IGFjdGl2ZV9maWxlOjBrQiBp bmFjdGl2ZV9maWxlOjBrQiB1bmV2aWN0YWJsZTowa0IgaXNvbGF0ZWQoYW5vbik6MGtCCj4gPj4+ Pj4+Pj4gaXNvbGF0ZWQoZmlsZSk6MGtCIG1hcHBlZDowa0IgZGlydHk6MGtCIHdyaXRlYmFjazow a0Igc2htZW06MGtCCj4gPj4+Pj4+Pj4gc2htZW1fdGhwOiAwa0Igc2htZW1fcG1kbWFwcGVkOiAw a0IgYW5vbl90aHA6IDBrQiB3cml0ZWJhY2tfdG1wOjBrQgo+ID4+Pj4+Pj4+IHVuc3RhYmxlOjBr QiBhbGxfdW5yZWNsYWltYWJsZT8gbm8KPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDczXSBOb2RlIDEg YWN0aXZlX2Fub246MGtCIGluYWN0aXZlX2Fub246MGtCCj4gPj4+Pj4+Pj4gYWN0aXZlX2ZpbGU6 MGtCIGluYWN0aXZlX2ZpbGU6MGtCIHVuZXZpY3RhYmxlOjBrQiBpc29sYXRlZChhbm9uKTowa0IK PiA+Pj4+Pj4+PiBpc29sYXRlZChmaWxlKTowa0IgbWFwcGVkOjBrQiBkaXJ0eTowa0Igd3JpdGVi YWNrOjBrQiBzaG1lbTowa0IKPiA+Pj4+Pj4+PiBzaG1lbV90aHA6IDBrQiBzaG1lbV9wbWRtYXBw ZWQ6IDBrQiBhbm9uX3RocDogMGtCIHdyaXRlYmFja190bXA6MGtCCj4gPj4+Pj4+Pj4gdW5zdGFi bGU6MGtCIGFsbF91bnJlY2xhaW1hYmxlPyBubwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNzldIE5v ZGUgMCBETUEgZnJlZTowa0IgbWluOjBrQiBsb3c6MGtCIGhpZ2g6MGtCCj4gPj4+Pj4+Pj4gcmVz ZXJ2ZWRfaGlnaGF0b21pYzowS0IgYWN0aXZlX2Fub246MGtCIGluYWN0aXZlX2Fub246MGtCCj4g Pj4+Pj4+Pj4gYWN0aXZlX2ZpbGU6MGtCIGluYWN0aXZlX2ZpbGU6MGtCIHVuZXZpY3RhYmxlOjBr QiB3cml0ZXBlbmRpbmc6MGtCCj4gPj4+Pj4+Pj4gcHJlc2VudDoxMjhrQiBtYW5hZ2VkOjBrQiBt bG9ja2VkOjBrQiBrZXJuZWxfc3RhY2s6MGtCIHBhZ2V0YWJsZXM6MGtCCj4gPj4+Pj4+Pj4gYm91 bmNlOjBrQiBmcmVlX3BjcDowa0IgbG9jYWxfcGNwOjBrQiBmcmVlX2NtYTowa0IKPiA+Pj4+Pj4+ PiBbICAgMzAuMzcwMDg0XSBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDI1MCA2MDYzIDYwNjMKPiA+Pj4+ Pj4+PiBbICAgMzAuMzcwMDkwXSBOb2RlIDAgRE1BMzIgZnJlZToyNTYwMDBrQiBtaW46NDA4a0Ig bG93OjY2NGtCCj4gPj4+Pj4+Pj4gaGlnaDo5MjBrQiByZXNlcnZlZF9oaWdoYXRvbWljOjBLQiBh Y3RpdmVfYW5vbjowa0IgaW5hY3RpdmVfYW5vbjowa0IKPiA+Pj4+Pj4+PiBhY3RpdmVfZmlsZTow a0IgaW5hY3RpdmVfZmlsZTowa0IgdW5ldmljdGFibGU6MGtCIHdyaXRlcGVuZGluZzowa0IKPiA+ Pj4+Pj4+PiBwcmVzZW50OjI2OTcwMGtCIG1hbmFnZWQ6MjU2MDAwa0IgbWxvY2tlZDowa0Iga2Vy bmVsX3N0YWNrOjBrQgo+ID4+Pj4+Pj4+IHBhZ2V0YWJsZXM6MGtCIGJvdW5jZTowa0IgZnJlZV9w Y3A6MGtCIGxvY2FsX3BjcDowa0IgZnJlZV9jbWE6MGtCCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDA5 NF0gbG93bWVtX3Jlc2VydmVbXTogMCAwIDU4MTMgNTgxMwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAx MDBdIE5vZGUgMCBOb3JtYWwgZnJlZTo1ODk0ODc2a0IgbWluOjk1NTJrQiBsb3c6MTU1MDRrQgo+ ID4+Pj4+Pj4+IGhpZ2g6MjE0NTZrQiByZXNlcnZlZF9oaWdoYXRvbWljOjBLQiBhY3RpdmVfYW5v bjowa0IgaW5hY3RpdmVfYW5vbjowa0IKPiA+Pj4+Pj4+PiBhY3RpdmVfZmlsZTowa0IgaW5hY3Rp dmVfZmlsZTowa0IgdW5ldmljdGFibGU6MGtCIHdyaXRlcGVuZGluZzowa0IKPiA+Pj4+Pj4+PiBw cmVzZW50OjgzODg2MDhrQiBtYW5hZ2VkOjU5NTMxMTJrQiBtbG9ja2VkOjBrQiBrZXJuZWxfc3Rh Y2s6MjE2NzJrQgo+ID4+Pj4+Pj4+IHBhZ2V0YWJsZXM6NTZrQiBib3VuY2U6MGtCIGZyZWVfcGNw Ojg3NmtCIGxvY2FsX3BjcDoxNzZrQiBmcmVlX2NtYTowa0IKPiA+Pj4+Pj4+PiBbICAgMzAuMzcw MTA0XSBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDAgMCAwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDEwN10g Tm9kZSAwIERNQTogMCo0a0IgMCo4a0IgMCoxNmtCIDAqMzJrQiAwKjY0a0IgMCoxMjhrQgo+ID4+ Pj4+Pj4+IDAqMjU2a0IgMCo1MTJrQiAwKjEwMjRrQiAwKjIwNDhrQiAwKjQwOTZrQiA9IDBrQgo+ ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMTNdIE5vZGUgMCBETUEzMjogMCo0a0IgMCo4a0IgMCoxNmtC IDAqMzJrQiAwKjY0a0IgMCoxMjhrQgo+ID4+Pj4+Pj4+IDAqMjU2a0IgMCo1MTJrQiAwKjEwMjRr QiAxKjIwNDhrQiAoTSkgNjIqNDA5NmtCIChNKSA9IDI1NjAwMGtCCj4gPj4+Pj4+Pj4gWyAgIDMw LjM3MDExOV0gTm9kZSAwIE5vcm1hbDogMio0a0IgKE0pIDMqOGtCIChNRSkgMioxNmtCIChVRSkg MyozMmtCCj4gPj4+Pj4+Pj4gKFVNKSAxKjY0a0IgKFUpIDIqMTI4a0IgKE0pIDIqMjU2a0IgKE1F KSAzKjUxMmtCIChNRSkgMyoxMDI0a0IgKE1FKQo+ID4+Pj4+Pj4+IDMqMjA0OGtCIChVTUUpIDE0 MzYqNDA5NmtCIChNKSA9IDU4OTM2MDBrQgo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMjldIE5vZGUg MCBodWdlcGFnZXNfdG90YWw9MCBodWdlcGFnZXNfZnJlZT0wCj4gPj4+Pj4+Pj4gaHVnZXBhZ2Vz X3N1cnA9MCBodWdlcGFnZXNfc2l6ZT0xMDQ4NTc2a0IKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMTMw XSAwIHRvdGFsIHBhZ2VjYWNoZSBwYWdlcwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzJdIDAgcGFn ZXMgaW4gc3dhcCBjYWNoZQo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzRdIFN3YXAgY2FjaGUgc3Rh dHM6IGFkZCAwLCBkZWxldGUgMCwgZmluZCAwLzAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMTM1XSBG cmVlIHN3YXAgID0gMGtCCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDEzNl0gVG90YWwgc3dhcCA9IDBr Qgo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzddIDIxNjQ2MDkgcGFnZXMgUkFNCj4gPj4+Pj4+Pj4g WyAgIDMwLjM3MDEzOV0gMCBwYWdlcyBIaWdoTWVtL01vdmFibGVPbmx5Cj4gPj4+Pj4+Pj4gWyAg IDMwLjM3MDE0MF0gNjEyMzMxIHBhZ2VzIHJlc2VydmVkCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDE0 MV0gMCBwYWdlcyBod3BvaXNvbmVkCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDE0M10gRE1BOiBmYWls ZWQgdG8gYWxsb2NhdGUgMjU2IEtpQiBwb29sIGZvciBhdG9taWMKPiA+Pj4+Pj4+PiBjb2hlcmVu dCBhbGxvY2F0aW9uCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gRHVyaW5nIG15IHRlc3RpbmcgSSBzYXcg dGhlIHNhbWUgZXJyb3IgYW5kIENoZW4ncyAgc29sdXRpb24gY29ycmVjdGVkIGl0IC4KPiA+Pj4+ Pj4gV2hpY2ggY29tYmluYXRpb24geW91IGFyZSB1c2luZyBvbiB5b3VyIHNpZGU/IEkgYW0gdXNp bmcgUHJhYmhha2FyJ3MKPiA+Pj4+Pj4gc3VnZ2VzdGVkIGVudmlyb25tZW50IGFuZCBjYW4gcmVw cm9kdWNlIHRoZSBpc3N1ZQo+ID4+Pj4+PiB3aXRoIG9yIHdpdGhvdXQgQ2hlbidzIGNyYXNoa2Vy bmVsIHN1cHBvcnQgYWJvdmUgNEcgcGF0Y2hzZXQuCj4gPj4+Pj4+Cj4gPj4+Pj4+IEkgYW0gYWxz byB1c2luZyBhIFRodW5kZXJYMiBwbGF0Zm9ybSB3aXRoIGxhdGVzdCBtYWtlZHVtcGZpbGUgY29k ZSBhbmQKPiA+Pj4+Pj4ga2V4ZWMtdG9vbHMgKHdpdGggdGhlIHN1Z2dlc3RlZCBwYXRjaAo+ID4+ Pj4+PiA8aHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9waXBlcm1haWwva2V4ZWMvMjAyMC1NYXkvMDI1MTI4Lmh0bWxfXzshIUdxaXZQVmE3QnJp byFKNmxVaWc1OC1HdzZUS1puRUVZekVlU1UzNlQtMVNxbEIxa0ltVTAweHRYX2xzczVUeC1KYlVt TEU5VEpDM2ZvWEJMZyQgPikuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoYW5rcywKPiA+Pj4+Pj4gQmh1 cGVzaAo+ID4+Pj4+Cj4gPj4+Pj4gSSBkaWQgdGhpcyBhY3Rpdml0eSA1IG1vbnRocyBhZ28gYW5k IEkgaGF2ZSBtb3ZlZCBvbiB0byBvdGhlciBhY3Rpdml0aWVzLiBNeSBETUEgZmFpbHVyZXMgd2Vy ZSByZWxhdGVkIHRvIFBDSSBkZXZpY2VzIHRoYXQgY291bGQgbm90IGJlIGVudW1lcmF0ZWQgYmVj YXVzZSAgbG93LURNQSBzcGFjZSB3YXMgbm90ICBhdmFpbGFibGUgd2hlbiBjcmFzaGtlcm5lbCB3 YXMgbW92ZWQgYWJvdmUgNEc7IEkgZG9u4oCZdCByZWNhbGwgdGhlIGV4YWN0IHBsYXRmb3JtLgo+ ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IEZvciB0aGlzIGZhaWx1cmUgLAo+ID4+Pj4+ Cj4gPj4+Pj4+Pj4gRE1BOiBmYWlsZWQgdG8gYWxsb2NhdGUgMjU2IEtpQiBwb29sIGZvciBhdG9t aWMKPiA+Pj4+Pj4+PiBjb2hlcmVudCBhbGxvY2F0aW9uCj4gPj4+Pj4KPiA+Pj4+PiBJcyBkdWUg dG8gOgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiAzNjE4MDgyYwo+ID4+Pj4+ICgiYXJtNjQgdXNl IGJvdGggWk9ORV9ETUEgYW5kIFpPTkVfRE1BMzIiKQo+ID4+Pj4+Cj4gPj4+Pj4gV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIFpPTkVfRE1BIHRvIHN1cHBvcnQgdGhlIFJhc3BiZXJyeSBETUEKPiA+ Pj4+PiByZWdpb24gYmVsb3cgMUcsIHRoZSBjcmFzaGtlcm5lbCBpcyBwbGFjZWQgaW4gdGhlIHVw cGVyIDRHCj4gPj4+Pj4gWk9ORV9ETUFfMzIgcmVnaW9uLiBTaW5jZSB0aGUgY3Jhc2hrZXJuZWwg ZG9lcyBub3QgaGF2ZSBhY2Nlc3MKPiA+Pj4+PiB0byB0aGUgWk9ORV9ETUEgcmVnaW9uLCBpdCBw cmludHMgb3V0IGNhbGwgdHJhY2UgZHVyaW5nIGJvb3R1cC4KPiA+Pj4+Pgo+ID4+Pj4+IEl0IGlz IGR1ZSB0byBoYXZpbmcgdGhpcyBDT05GSUcgaXRlbSAgT04gIDoKPiA+Pj4+Pgo+ID4+Pj4+Cj4g Pj4+Pj4gQ09ORklHX1pPTkVfRE1BPXkKPiA+Pj4+Pgo+ID4+Pj4+IFR1cm5pbmcgb2ZmIFpPTkVf RE1BIGZpeGVzIGEgaXNzdWUgYW5kIFJhc3BiZXJyeSBQSSA0IHdpbGwKPiA+Pj4+PiB1c2UgdGhl IGRldmljZSB0cmVlIHRvIHNwZWNpZnkgbWVtb3J5IGJlbG93IDFHLgo+ID4+Pj4+Cj4gPj4+Pj4K PiA+Pj4+IERpc2FibGluZyBaT05FX0RNQSBpcyB0ZW1wb3Jhcnkgc29sdXRpb24uICBXZSBtYXkg bmVlZCBwcm9wZXIgc29sdXRpb24KPiA+Pj4KPiA+Pj4gUGVyaGFwcyB0aGUgUmFzcGJlcnJ5IHBs YXRmb3JtIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIG5lZWQgc2VwYXJhdGVkICBmcm9tIOKA nHNlcnZlciBjbGFzc+KAnSBBcm0gIGVxdWlwbWVudCA/ICBPciBhdXRvLWNvbmZpZ3VyZWQgb24g Ym9vdCA/ICBDb25zdWx0IGFuIGV4cGVydCA7LSkKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4+PiBJ IHdvdWxkIGxpa2UgdG8gc2VlIENoZW7igJlzIGZlYXR1cmUgYWRkZWQgLCBwZXJoYXBzIGFzIEVY UEVSSU1FTlRBTCwgIHNvIHdlIGNhbiBnZXQgc29tZSBjb25maWd1cmF0aW9uIHRlc3RpbmcgZG9u ZSBvbiBpdC4gICBJdCBjb3JyZWN0cyBoYXZpbmcgYSBETUEgem9uZSBpbiBsb3cgbWVtb3J5IHdo aWxlIGNyYXNoLWtlcm5lbCBpcyBhYm92ZSA0R0IuICBUaGlzIGhhcyBiZWVuIGdvaW5nIG9uIGZv ciBhIHllYXIgbm93Lgo+ID4+Pj4gSSB3aWxsIGFsc28gbGlrZSB0aGlzIHBhdGNoIHRvIGJlIGFk ZGVkIGluIExpbnV4IGFzIGVhcmx5IGFzIHBvc3NpYmxlLgo+ID4+Pj4KPiA+Pj4+IElzc3VlIG1l bnRpb25lZCBieSBtZSBoYXBwZW5zIHdpdGggb3Igd2l0aG91dCB0aGlzIHBhdGNoLgo+ID4+Pj4K PiA+Pj4+IFRoaXMgcGF0Y2gtc2V0IGNhbiBjb25zaWRlciBmaXhpbmcgYmVjYXVzZSBpdCB1c2Vz IGxvdyBtZW1vcnkgZm9yIERNQQo+ID4+Pj4gJiBzd2lvdGxiIG9ubHkuCj4gPj4+PiBXZSBjYW4g Y29uc2lkZXIgcmVzdHJpY3RpbmcgY3Jhc2hrZXJuZWwgd2l0aGluIHRoZSByZXF1aXJlZCByYW5n ZSBsaWtlIGJlbG93Cj4gPj4+Pgo+ID4+Pj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9jcmFzaF9jb3Jl LmMgYi9rZXJuZWwvY3Jhc2hfY29yZS5jCj4gPj4+PiBpbmRleCA3ZjllNWE2ZGM0OGMuLmJkNjdi OTBkMzViZCAxMDA2NDQKPiA+Pj4+IC0tLSBhL2tlcm5lbC9jcmFzaF9jb3JlLmMKPiA+Pj4+ICsr KyBiL2tlcm5lbC9jcmFzaF9jb3JlLmMKPiA+Pj4+IEBAIC0zNTQsNyArMzU0LDcgQEAgaW50IF9f aW5pdCByZXNlcnZlX2NyYXNoa2VybmVsX2xvdyh2b2lkKQo+ID4+Pj4gICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAwOwo+ID4+Pj4gICAgICAgfQo+ID4+Pj4KPiA+Pj4+IC0gICAgICAgbG93 X2Jhc2UgPSBtZW1ibG9ja19maW5kX2luX3JhbmdlKDAsIDFVTEwgPDwgMzIsIGxvd19zaXplLCBD UkFTSF9BTElHTik7Cj4gPj4+PiArICAgICAgIGxvd19iYXNlID0gbWVtYmxvY2tfZmluZF9pbl9y YW5nZSgwLDB4YzAwMDAwMDAsIGxvd19zaXplLCBDUkFTSF9BTElHTik7Cj4gPj4+PiAgICAgICBp ZiAoIWxvd19iYXNlKSB7Cj4gPj4+PiAgICAgICAgICAgICAgIHByX2VycigiQ2Fubm90IHJlc2Vy dmUgJWxkTUIgY3Jhc2hrZXJuZWwgbG93IG1lbW9yeSwKPiA+Pj4+IHBsZWFzZSB0cnkgc21hbGxl ciBzaXplLlxuIiwKPiA+Pj4+ICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKShs b3dfc2l6ZSA+PiAyMCkpOwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+ICAgIEkgc3VzcGVjdCAgMHhjMDAw MDAwMCAgd291bGQgbmVlZCB0byBiZSBhIENPTkZJRyBpdGVtICBhbmQgbm90IGhhcmQtY29kZWQu Cj4gPj4+Cj4gPj4gaWYgeW91IGNvbnNpZGVyIHRoaXMgYXMgdmFsaWQgY2hhbmdlLCAgY2FuIHlv dSBwbGVhc2UgaW5jb3Jwb3JhdGUgYXMKPiA+PiBwYXJ0IG9mIHlvdXIgcGF0Y2gtc2V0Lgo+ID4K PiA+IEFmdGVyIGNvbW1pdCAxYThlMWNlZjcgKCJhcm02NDogdXNlIGJvdGggWk9ORV9ETUEgYW5k IFpPTkVfRE1BMzIiKe+8jHRoZSAwLTRHIG1lbW9yeSBpcyBzcGxpdGVkCj4gPiB0byBETUEgW21l bSAweDAwMDAwMDAwMDAwMDAwMDAtMHgwMDAwMDAwMDNmZmZmZmZmXSBhbmQgRE1BMzIgW21lbSAw eDAwMDAwMDAwNDAwMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXSBvbiBhcm02NC4KPiA+Cj4gPiBG cm9tIHRoZSBhYm92ZSBkaXNjdXNzaW9uLCBvbiB5b3VyIHBsYXRmb3JtLCB0aGUgbG93IGNyYXNo a2VybmVsIGZhbGwgaW4gRE1BMzIgcmVnaW9uLCBidXQgeW91ciBlbnZpcm9ubWVudCBuZWVkcyB0 byBhY2Nlc3MgRE1BCj4gPiByZWdpb24sIHNvIHRoZXJlIGlzIHRoZSBjYWxsIHRyYWNlLgo+ID4K PiA+IEkgaGF2ZSBhIHF1ZXN0aW9uLCB3aHkgZG8geW91IGNob29zZSAweGMwMDAwMDAwIGhlcmU/ Cj4gPgo+ID4gQmVzaWRlcywgdGhpcyBpcyBjb21tb24gY29kZSwgd2UgYWxzbyBuZWVkIHRvIGNv bnNpZGVyIGFib3V0IHg4Ni4KPiA+Cj4KPiAgKyBuc2FlbnpqdWxpZW5uZUBzdXNlLmRlCj4KPiAg IEV4YWN0bHkgLiAgVGhpcyBpcyB3aHkgaXQgbmVlZHMgdG8gYmUgYSBDT05GSUcgb3B0aW9uIGZv ciAgUmFzcGJlcnJ5IC4uLCAgb3IgZGV2aWNlIHRyZWUgb3B0aW9uLgo+Cj4KPiAgIFdlIGNvdWxk IHJldmVydCAxYThlMWNlZjcgc2luY2UgaXQgYnJva2UgIEFybSBrZHVtcCB0b28uCgpXZWxsLCB1 bmZvcnR1bmF0ZWx5IHRoZSBwYXRjaCBmb3IgY29tbWl0IDFhOGUxY2VmNzYwMyAoImFybTY0OiB1 c2UKYm90aCBaT05FX0RNQSBhbmQgWk9ORV9ETUEzMiIpIHdhcyBub3QgQ2MnZWQgdG8gdGhlIGtl eGVjIG1haWxpbmcKbGlzdCwgdGh1cyB3ZSBjb3VsZG4ndCBnZXQgbWFueSBleWVzIG9uIGl0IGZv ciBhIHRob3JvdWdoIHJldmlldyBmcm9tCmtleGVjL2tkdW1wIHAtby12LgoKQWxzbyB3ZSBoaXN0 b3JpY2FsbHkgbmV2ZXIgaGFkIGRpc3RpbmN0aW9uIGluIGNvbW1vbiBhcmNoIGNvZGUgb24gdGhl CmJhc2lzIG9mIHRoZSBpbnRlbmRlZCBlbmQgdXNlLWNhc2U6IGVtYmVkZGVkLCBzZXJ2ZXIgb3Ig YXV0b21vdGl2ZSwgc28KSSBhbSBub3Qgc3VyZSBpbnRyb2R1Y2luZyBhIFJhc3BiZXJyeSBzcGVj aWZpYyBDT05GSUcgb3B0aW9uIHdvdWxkIGJlCmEgZ29vZCBpZGVhLgoKU28sIHJhdGhlciB0aGFu IHJldmVydGluZyB0aGUgcGF0Y2gsIHdlIGNhbiBsb29rIGF0IGFkZHJlc3NpbmcgdGhlCnNhbWUg cHJvcGVybHkgdGhpcyB0aW1lIC0gZXNwZWNpYWxseSBmcm9tIGEga2R1bXAgcC1vLXYuClRoaXMg aXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQgYnkgc29tZSBSZWQgSGF0IGFybTY0IHBhcnRuZXJzIHdp dGgKdXBzdHJlYW0ga2VybmVsIGFsc28gYW5kIGFzIHdlIGhhdmUgbm90aWNlZCBpbiB0aGUgcGFz dCBhcyB3ZWxsLApoYXJkY29kaW5nIHRoZSBwbGFjZW1lbnQgb2YgdGhlIGNyYXNoa2VybmVsIGJh c2UgYWRkcmVzcyAodW5sZXNzIHRoZQpiYXNlIGFkZHJlc3MgaXMgc3BlY2lmaWVkIGJ5IGEgY3Jh c2hrZXJuZWw9WEBZIGxpa2UgYm9vdGFyZ3MpIGlzIGFsc28Kbm90IGEgcG9ydGFibGUgc3VnZ2Vz dGlvbi4KCkkgYW0gd29ya2luZyBvbiBhIHBvc3NpYmxlIGZpeCBhbmQgd2lsbCBoYXZlIG1vcmUg dXBkYXRlcyBvbiB0aGUgc2FtZQppbiBhIGRheS1vci10d28uCgpUaGFua3MsCkJodXBlc2gKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from us-smtp-2.mimecast.com ([207.211.31.81] helo=us-smtp-delivery-1.mimecast.com) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jgZMK-0000cH-6u for kexec@lists.infradead.org; Wed, 03 Jun 2020 19:47:34 +0000 Received: by mail-qt1-f200.google.com with SMTP id d2so2885853qtw.4 for ; Wed, 03 Jun 2020 12:47:21 -0700 (PDT) MIME-Version: 1.0 References: <20200521093805.64398-1-chenzhou10@huawei.com> <303695cc-d3ea-9f51-1489-07d27d4253d4@oracle.com> <6EA47B07-5119-49DF-9980-12A2066F22CA@oracle.com> <8463464e-5461-f328-621c-bacc6a3b88dd@huawei.com> <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> In-Reply-To: <8E0D45DC-12BF-437D-A342-03E974D9C6D4@oracle.com> From: Bhupesh Sharma Date: Thu, 4 Jun 2020 01:17:06 +0530 Message-ID: Subject: Re: [PATCH v8 0/5] support reserving crashkernel above 4G on arm64 kdump List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: John Donnelly Cc: Devicetree List , Arnd Bergmann , Baoquan He , Linux Doc Mailing List , chenzhou , Catalin Marinas , RuiRui Yang , Prabhakar Kushwaha , kexec mailing list , Linux Kernel Mailing List , Rob Herring , Simon Horman , James Morse , linux-arm-kernel , guohanjun@huawei.com, Thomas Gleixner , Prabhakar Kushwaha , Will Deacon , Ingo Molnar , nsaenzjulienne@suse.de SGkgQWxsLAoKT24gV2VkLCBKdW4gMywgMjAyMCBhdCA5OjAzIFBNIEpvaG4gRG9ubmVsbHkgPGpv aG4ucC5kb25uZWxseUBvcmFjbGUuY29tPiB3cm90ZToKPgo+Cj4KPiA+IE9uIEp1biAzLCAyMDIw LCBhdCA4OjIwIEFNLCBjaGVuemhvdSA8Y2hlbnpob3UxMEBodWF3ZWkuY29tPiB3cm90ZToKPiA+ Cj4gPiBIaSwKPiA+Cj4gPgo+ID4gT24gMjAyMC82LzMgMTk6NDcsIFByYWJoYWthciBLdXNod2Fo YSB3cm90ZToKPiA+PiBIaSBDaGVuLAo+ID4+Cj4gPj4gT24gVHVlLCBKdW4gMiwgMjAyMCBhdCA4 OjEyIFBNIEpvaG4gRG9ubmVsbHkgPGpvaG4ucC5kb25uZWxseUBvcmFjbGUuY29tPiB3cm90ZToK PiA+Pj4KPiA+Pj4KPiA+Pj4+IE9uIEp1biAyLCAyMDIwLCBhdCAxMjozOCBBTSwgUHJhYmhha2Fy IEt1c2h3YWhhIDxwcmFiaGFrYXIucGtpbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4+Pj4KPiA+Pj4+ IE9uIFR1ZSwgSnVuIDIsIDIwMjAgYXQgMzoyOSBBTSBKb2huIERvbm5lbGx5IDxqb2huLnAuZG9u bmVsbHlAb3JhY2xlLmNvbT4gd3JvdGU6Cj4gPj4+Pj4gSGkgLiAgU2VlIGJlbG93ICEKPiA+Pj4+ Pgo+ID4+Pj4+PiBPbiBKdW4gMSwgMjAyMCwgYXQgNDowMiBQTSwgQmh1cGVzaCBTaGFybWEgPGJo c2hhcm1hQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4+Pj4+Pgo+ID4+Pj4+PiBIaSBKb2huLAo+ID4+ Pj4+Pgo+ID4+Pj4+PiBPbiBUdWUsIEp1biAyLCAyMDIwIGF0IDE6MDEgQU0gSm9obiBEb25uZWxs eSA8Sm9obi5QLmRvbm5lbGx5QG9yYWNsZS5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4gSGksCj4gPj4+ Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE9uIDYvMS8yMCA3OjAyIEFNLCBQcmFiaGFrYXIgS3Vz aHdhaGEgd3JvdGU6Cj4gPj4+Pj4+Pj4gSGkgQ2hlbiwKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IE9u IFRodSwgTWF5IDIxLCAyMDIwIGF0IDM6MDUgUE0gQ2hlbiBaaG91IDxjaGVuemhvdTEwQGh1YXdl aS5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4+PiBUaGlzIHBhdGNoIHNlcmllcyBlbmFibGUgcmVzZXJ2 aW5nIGNyYXNoa2VybmVsIGFib3ZlIDRHIGluIGFybTY0Lgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ PiBUaGVyZSBhcmUgZm9sbG93aW5nIGlzc3VlcyBpbiBhcm02NCBrZHVtcDoKPiA+Pj4+Pj4+Pj4g MS4gV2UgdXNlIGNyYXNoa2VybmVsPVggdG8gcmVzZXJ2ZSBjcmFzaGtlcm5lbCBiZWxvdyA0Rywg d2hpY2ggd2lsbCBmYWlsCj4gPj4+Pj4+Pj4+IHdoZW4gdGhlcmUgaXMgbm8gZW5vdWdoIGxvdyBt ZW1vcnkuCj4gPj4+Pj4+Pj4+IDIuIEN1cnJlbnRseSwgY3Jhc2hrZXJuZWw9WUBYIGNhbiBiZSB1 c2VkIHRvIHJlc2VydmUgY3Jhc2hrZXJuZWwgYWJvdmUgNEcsCj4gPj4+Pj4+Pj4+IGluIHRoaXMg Y2FzZSwgaWYgc3dpb3RsYiBvciBETUEgYnVmZmVycyBhcmUgcmVxdWlyZWQsIGNyYXNoIGR1bXAg a2VybmVsCj4gPj4+Pj4+Pj4+IHdpbGwgYm9vdCBmYWlsdXJlIGJlY2F1c2UgdGhlcmUgaXMgbm8g bG93IG1lbW9yeSBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24uCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+ Pj4gV2UgYXJlIGdldHRpbmcgIndhcm5fYWxsb2MiIFsxXSB3YXJuaW5nIGR1cmluZyBib290IG9m IGtkdW1wIGtlcm5lbAo+ID4+Pj4+Pj4+IHdpdGggYm9vdGFyZ3MgYXMgWzJdIG9mIHByaW1hcnkg a2VybmVsLgo+ID4+Pj4+Pj4+IFRoaXMgZXJyb3Igb2JzZXJ2ZWQgb24gVGh1bmRlclgyICBBUk02 NCBwbGF0Zm9ybS4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEl0IGlzIG9ic2VydmVkIHdpdGggbGF0 ZXN0IHVwc3RyZWFtIHRhZyAodjUuNy1yYzMpIHdpdGggdGhpcyBwYXRjaCBzZXQKPiA+Pj4+Pj4+ PiBhbmQgaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9waXBlcm1haWwva2V4ZWMvMjAyMC1NYXkvMDI1MTI4Lmh0bWxfXzshIUdxaXZQVmE3QnJp byFMblRTQVJrQ3QwVjBGb3pSMEttcW9vYUg1QUR0ZFh2czNtUGRQM0tSVnFBTG12U0syVm1Da0lQ SWhzYXhiaUlBQWx6dSQKPiA+Pj4+Pj4+PiBBbHNvICoqd2l0aG91dCoqIHRoaXMgcGF0Y2gtc2V0 Cj4gPj4+Pj4+Pj4gImh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL3d3dy5zcGlu aWNzLm5ldC9saXN0cy9hcm0ta2VybmVsL21zZzgwNjg4Mi5odG1sX187ISFHcWl2UFZhN0JyaW8h TG5UU0FSa0N0MFYwRm96UjBLbXFvb2FINUFEdGRYdnMzbVBkUDNLUlZxQUxtdlNLMlZtQ2tJUElo c2F4YmpDNnVqTUEkIgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gVGhpcyBpc3N1ZSBjb21lcyB3aGVu ZXZlciBjcmFzaGtlcm5lbCBtZW1vcnkgaXMgcmVzZXJ2ZWQgYWZ0ZXIgMHhjMDAwXzAwMDAuCj4g Pj4+Pj4+Pj4gTW9yZSBkZXRhaWxzIGRpc2N1c3NlZCBlYXJsaWVyIGluCj4gPj4+Pj4+Pj4gaHR0 cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2Fy bS1rZXJuZWwvbXNnODA2ODgyLmh0bWxfXzshIUdxaXZQVmE3QnJpbyFMblRTQVJrQ3QwVjBGb3pS MEttcW9vYUg1QUR0ZFh2czNtUGRQM0tSVnFBTG12U0syVm1Da0lQSWhzYXhiakM2dWpNQSQgIHdp dGhvdXQgYW55Cj4gPj4+Pj4+Pj4gc29sdXRpb24KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IFRoaXMg cGF0Y2gtc2V0IGlzIGV4cGVjdGVkIHRvIHNvbHZlIHNpbWlsYXIga2luZCBvZiBpc3N1ZS4KPiA+ Pj4+Pj4+PiBpLmUuIGxvdyBtZW1vcnkgaXMgb25seSB0YXJnZXRlZCBmb3IgRE1BLCBzd2lvdGxi OyBTbyBhYm92ZSBtZW50aW9uZWQKPiA+Pj4+Pj4+PiBvYnNlcnZhdGlvbiBzaG91bGQgYmUgY29u c2lkZXJlZC9maXhlZC4gLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gLS1wawo+ID4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4gWzFdCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2NjY5NV0gRE1JOiBDYXZpdW0gSW5jLiBT YWJlci9TYWJlciwgQklPUwo+ID4+Pj4+Pj4+IFRYMi1GVy1SZWxlYXNlLTMuMS1idWlsZF8wMS0y ODAzLWc3NDI1M2E1NDFhIG1tL2RkL3l5eXkKPiA+Pj4+Pj4+PiBbICAgMzAuMzY3Njk2XSBORVQ6 IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5IDE2Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk3M10g c3dhcHBlci8wOiBwYWdlIGFsbG9jYXRpb24gZmFpbHVyZTogb3JkZXI6NiwKPiA+Pj4+Pj4+PiBt b2RlOjB4MShHRlBfRE1BKSwgbm9kZW1hc2s9KG51bGwpLGNwdXNldD0vLG1lbXNfYWxsb3dlZD0w Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk4MF0gQ1BVOiAwIFBJRDogMSBDb21tOiBzd2FwcGVyLzAg Tm90IHRhaW50ZWQgNS43LjAtcmMzKyAjMTIxCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk4MV0gSGFy ZHdhcmUgbmFtZTogQ2F2aXVtIEluYy4gU2FiZXIvU2FiZXIsIEJJT1MKPiA+Pj4+Pj4+PiBUWDIt RlctUmVsZWFzZS0zLjEtYnVpbGRfMDEtMjgwMy1nNzQyNTNhNTQxYSBtbS9kZC95eXl5Cj4gPj4+ Pj4+Pj4gWyAgIDMwLjM2OTk4NF0gQ2FsbCB0cmFjZToKPiA+Pj4+Pj4+PiBbICAgMzAuMzY5OTg5 XSAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWY4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk5MV0gIHNo b3dfc3RhY2srMHgyMC8weDMwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM2OTk5N10gIGR1bXBfc3RhY2sr MHhjMC8weDEwYwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMDFdICB3YXJuX2FsbG9jKzB4MTBjLzB4 MTc4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAwNF0gIF9fYWxsb2NfcGFnZXNfc2xvd3BhdGguY29u c3Rwcm9wLjExMSsweGIxMC8weGI1MAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMDZdICBfX2FsbG9j X3BhZ2VzX25vZGVtYXNrKzB4MmI0LzB4MzAwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAwOF0gIGFs bG9jX3BhZ2VfaW50ZXJsZWF2ZSsweDI0LzB4OTgKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDExXSAg YWxsb2NfcGFnZXNfY3VycmVudCsweGU0LzB4MTA4Cj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDAxN10g IGRtYV9hdG9taWNfcG9vbF9pbml0KzB4NDQvMHgxYTQKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDIw XSAgZG9fb25lX2luaXRjYWxsKzB4NTQvMHgyMjgKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDI3XSAg a2VybmVsX2luaXRfZnJlZWFibGUrMHgyMjgvMHgyY2MKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDMx XSAga2VybmVsX2luaXQrMHgxYy8weDExMAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMzRdICByZXRf ZnJvbV9mb3JrKzB4MTAvMHgxOAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwMzZdIE1lbS1JbmZvOgo+ ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdIGFjdGl2ZV9hbm9uOjAgaW5hY3RpdmVfYW5vbjowIGlz b2xhdGVkX2Fub246MAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdICBhY3RpdmVfZmlsZTowIGlu YWN0aXZlX2ZpbGU6MCBpc29sYXRlZF9maWxlOjAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDY0XSAg dW5ldmljdGFibGU6MCBkaXJ0eTowIHdyaXRlYmFjazowIHVuc3RhYmxlOjAKPiA+Pj4+Pj4+PiBb ICAgMzAuMzcwMDY0XSAgc2xhYl9yZWNsYWltYWJsZTozNCBzbGFiX3VucmVjbGFpbWFibGU6NDQz OAo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNjRdICBtYXBwZWQ6MCBzaG1lbTowIHBhZ2V0YWJsZXM6 MTQgYm91bmNlOjAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDY0XSAgZnJlZToxNTM3NzE5IGZyZWVf cGNwOjIxOSBmcmVlX2NtYTowCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDA3MF0gTm9kZSAwIGFjdGl2 ZV9hbm9uOjBrQiBpbmFjdGl2ZV9hbm9uOjBrQgo+ID4+Pj4+Pj4+IGFjdGl2ZV9maWxlOjBrQiBp bmFjdGl2ZV9maWxlOjBrQiB1bmV2aWN0YWJsZTowa0IgaXNvbGF0ZWQoYW5vbik6MGtCCj4gPj4+ Pj4+Pj4gaXNvbGF0ZWQoZmlsZSk6MGtCIG1hcHBlZDowa0IgZGlydHk6MGtCIHdyaXRlYmFjazow a0Igc2htZW06MGtCCj4gPj4+Pj4+Pj4gc2htZW1fdGhwOiAwa0Igc2htZW1fcG1kbWFwcGVkOiAw a0IgYW5vbl90aHA6IDBrQiB3cml0ZWJhY2tfdG1wOjBrQgo+ID4+Pj4+Pj4+IHVuc3RhYmxlOjBr QiBhbGxfdW5yZWNsYWltYWJsZT8gbm8KPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMDczXSBOb2RlIDEg YWN0aXZlX2Fub246MGtCIGluYWN0aXZlX2Fub246MGtCCj4gPj4+Pj4+Pj4gYWN0aXZlX2ZpbGU6 MGtCIGluYWN0aXZlX2ZpbGU6MGtCIHVuZXZpY3RhYmxlOjBrQiBpc29sYXRlZChhbm9uKTowa0IK PiA+Pj4+Pj4+PiBpc29sYXRlZChmaWxlKTowa0IgbWFwcGVkOjBrQiBkaXJ0eTowa0Igd3JpdGVi YWNrOjBrQiBzaG1lbTowa0IKPiA+Pj4+Pj4+PiBzaG1lbV90aHA6IDBrQiBzaG1lbV9wbWRtYXBw ZWQ6IDBrQiBhbm9uX3RocDogMGtCIHdyaXRlYmFja190bXA6MGtCCj4gPj4+Pj4+Pj4gdW5zdGFi bGU6MGtCIGFsbF91bnJlY2xhaW1hYmxlPyBubwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAwNzldIE5v ZGUgMCBETUEgZnJlZTowa0IgbWluOjBrQiBsb3c6MGtCIGhpZ2g6MGtCCj4gPj4+Pj4+Pj4gcmVz ZXJ2ZWRfaGlnaGF0b21pYzowS0IgYWN0aXZlX2Fub246MGtCIGluYWN0aXZlX2Fub246MGtCCj4g Pj4+Pj4+Pj4gYWN0aXZlX2ZpbGU6MGtCIGluYWN0aXZlX2ZpbGU6MGtCIHVuZXZpY3RhYmxlOjBr QiB3cml0ZXBlbmRpbmc6MGtCCj4gPj4+Pj4+Pj4gcHJlc2VudDoxMjhrQiBtYW5hZ2VkOjBrQiBt bG9ja2VkOjBrQiBrZXJuZWxfc3RhY2s6MGtCIHBhZ2V0YWJsZXM6MGtCCj4gPj4+Pj4+Pj4gYm91 bmNlOjBrQiBmcmVlX3BjcDowa0IgbG9jYWxfcGNwOjBrQiBmcmVlX2NtYTowa0IKPiA+Pj4+Pj4+ PiBbICAgMzAuMzcwMDg0XSBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDI1MCA2MDYzIDYwNjMKPiA+Pj4+ Pj4+PiBbICAgMzAuMzcwMDkwXSBOb2RlIDAgRE1BMzIgZnJlZToyNTYwMDBrQiBtaW46NDA4a0Ig bG93OjY2NGtCCj4gPj4+Pj4+Pj4gaGlnaDo5MjBrQiByZXNlcnZlZF9oaWdoYXRvbWljOjBLQiBh Y3RpdmVfYW5vbjowa0IgaW5hY3RpdmVfYW5vbjowa0IKPiA+Pj4+Pj4+PiBhY3RpdmVfZmlsZTow a0IgaW5hY3RpdmVfZmlsZTowa0IgdW5ldmljdGFibGU6MGtCIHdyaXRlcGVuZGluZzowa0IKPiA+ Pj4+Pj4+PiBwcmVzZW50OjI2OTcwMGtCIG1hbmFnZWQ6MjU2MDAwa0IgbWxvY2tlZDowa0Iga2Vy bmVsX3N0YWNrOjBrQgo+ID4+Pj4+Pj4+IHBhZ2V0YWJsZXM6MGtCIGJvdW5jZTowa0IgZnJlZV9w Y3A6MGtCIGxvY2FsX3BjcDowa0IgZnJlZV9jbWE6MGtCCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDA5 NF0gbG93bWVtX3Jlc2VydmVbXTogMCAwIDU4MTMgNTgxMwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAx MDBdIE5vZGUgMCBOb3JtYWwgZnJlZTo1ODk0ODc2a0IgbWluOjk1NTJrQiBsb3c6MTU1MDRrQgo+ ID4+Pj4+Pj4+IGhpZ2g6MjE0NTZrQiByZXNlcnZlZF9oaWdoYXRvbWljOjBLQiBhY3RpdmVfYW5v bjowa0IgaW5hY3RpdmVfYW5vbjowa0IKPiA+Pj4+Pj4+PiBhY3RpdmVfZmlsZTowa0IgaW5hY3Rp dmVfZmlsZTowa0IgdW5ldmljdGFibGU6MGtCIHdyaXRlcGVuZGluZzowa0IKPiA+Pj4+Pj4+PiBw cmVzZW50OjgzODg2MDhrQiBtYW5hZ2VkOjU5NTMxMTJrQiBtbG9ja2VkOjBrQiBrZXJuZWxfc3Rh Y2s6MjE2NzJrQgo+ID4+Pj4+Pj4+IHBhZ2V0YWJsZXM6NTZrQiBib3VuY2U6MGtCIGZyZWVfcGNw Ojg3NmtCIGxvY2FsX3BjcDoxNzZrQiBmcmVlX2NtYTowa0IKPiA+Pj4+Pj4+PiBbICAgMzAuMzcw MTA0XSBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDAgMCAwCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDEwN10g Tm9kZSAwIERNQTogMCo0a0IgMCo4a0IgMCoxNmtCIDAqMzJrQiAwKjY0a0IgMCoxMjhrQgo+ID4+ Pj4+Pj4+IDAqMjU2a0IgMCo1MTJrQiAwKjEwMjRrQiAwKjIwNDhrQiAwKjQwOTZrQiA9IDBrQgo+ ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMTNdIE5vZGUgMCBETUEzMjogMCo0a0IgMCo4a0IgMCoxNmtC IDAqMzJrQiAwKjY0a0IgMCoxMjhrQgo+ID4+Pj4+Pj4+IDAqMjU2a0IgMCo1MTJrQiAwKjEwMjRr QiAxKjIwNDhrQiAoTSkgNjIqNDA5NmtCIChNKSA9IDI1NjAwMGtCCj4gPj4+Pj4+Pj4gWyAgIDMw LjM3MDExOV0gTm9kZSAwIE5vcm1hbDogMio0a0IgKE0pIDMqOGtCIChNRSkgMioxNmtCIChVRSkg MyozMmtCCj4gPj4+Pj4+Pj4gKFVNKSAxKjY0a0IgKFUpIDIqMTI4a0IgKE0pIDIqMjU2a0IgKE1F KSAzKjUxMmtCIChNRSkgMyoxMDI0a0IgKE1FKQo+ID4+Pj4+Pj4+IDMqMjA0OGtCIChVTUUpIDE0 MzYqNDA5NmtCIChNKSA9IDU4OTM2MDBrQgo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMjldIE5vZGUg MCBodWdlcGFnZXNfdG90YWw9MCBodWdlcGFnZXNfZnJlZT0wCj4gPj4+Pj4+Pj4gaHVnZXBhZ2Vz X3N1cnA9MCBodWdlcGFnZXNfc2l6ZT0xMDQ4NTc2a0IKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMTMw XSAwIHRvdGFsIHBhZ2VjYWNoZSBwYWdlcwo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzJdIDAgcGFn ZXMgaW4gc3dhcCBjYWNoZQo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzRdIFN3YXAgY2FjaGUgc3Rh dHM6IGFkZCAwLCBkZWxldGUgMCwgZmluZCAwLzAKPiA+Pj4+Pj4+PiBbICAgMzAuMzcwMTM1XSBG cmVlIHN3YXAgID0gMGtCCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDEzNl0gVG90YWwgc3dhcCA9IDBr Qgo+ID4+Pj4+Pj4+IFsgICAzMC4zNzAxMzddIDIxNjQ2MDkgcGFnZXMgUkFNCj4gPj4+Pj4+Pj4g WyAgIDMwLjM3MDEzOV0gMCBwYWdlcyBIaWdoTWVtL01vdmFibGVPbmx5Cj4gPj4+Pj4+Pj4gWyAg IDMwLjM3MDE0MF0gNjEyMzMxIHBhZ2VzIHJlc2VydmVkCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDE0 MV0gMCBwYWdlcyBod3BvaXNvbmVkCj4gPj4+Pj4+Pj4gWyAgIDMwLjM3MDE0M10gRE1BOiBmYWls ZWQgdG8gYWxsb2NhdGUgMjU2IEtpQiBwb29sIGZvciBhdG9taWMKPiA+Pj4+Pj4+PiBjb2hlcmVu dCBhbGxvY2F0aW9uCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gRHVyaW5nIG15IHRlc3RpbmcgSSBzYXcg dGhlIHNhbWUgZXJyb3IgYW5kIENoZW4ncyAgc29sdXRpb24gY29ycmVjdGVkIGl0IC4KPiA+Pj4+ Pj4gV2hpY2ggY29tYmluYXRpb24geW91IGFyZSB1c2luZyBvbiB5b3VyIHNpZGU/IEkgYW0gdXNp bmcgUHJhYmhha2FyJ3MKPiA+Pj4+Pj4gc3VnZ2VzdGVkIGVudmlyb25tZW50IGFuZCBjYW4gcmVw cm9kdWNlIHRoZSBpc3N1ZQo+ID4+Pj4+PiB3aXRoIG9yIHdpdGhvdXQgQ2hlbidzIGNyYXNoa2Vy bmVsIHN1cHBvcnQgYWJvdmUgNEcgcGF0Y2hzZXQuCj4gPj4+Pj4+Cj4gPj4+Pj4+IEkgYW0gYWxz byB1c2luZyBhIFRodW5kZXJYMiBwbGF0Zm9ybSB3aXRoIGxhdGVzdCBtYWtlZHVtcGZpbGUgY29k ZSBhbmQKPiA+Pj4+Pj4ga2V4ZWMtdG9vbHMgKHdpdGggdGhlIHN1Z2dlc3RlZCBwYXRjaAo+ID4+ Pj4+PiA8aHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9waXBlcm1haWwva2V4ZWMvMjAyMC1NYXkvMDI1MTI4Lmh0bWxfXzshIUdxaXZQVmE3QnJp byFKNmxVaWc1OC1HdzZUS1puRUVZekVlU1UzNlQtMVNxbEIxa0ltVTAweHRYX2xzczVUeC1KYlVt TEU5VEpDM2ZvWEJMZyQgPikuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoYW5rcywKPiA+Pj4+Pj4gQmh1 cGVzaAo+ID4+Pj4+Cj4gPj4+Pj4gSSBkaWQgdGhpcyBhY3Rpdml0eSA1IG1vbnRocyBhZ28gYW5k IEkgaGF2ZSBtb3ZlZCBvbiB0byBvdGhlciBhY3Rpdml0aWVzLiBNeSBETUEgZmFpbHVyZXMgd2Vy ZSByZWxhdGVkIHRvIFBDSSBkZXZpY2VzIHRoYXQgY291bGQgbm90IGJlIGVudW1lcmF0ZWQgYmVj YXVzZSAgbG93LURNQSBzcGFjZSB3YXMgbm90ICBhdmFpbGFibGUgd2hlbiBjcmFzaGtlcm5lbCB3 YXMgbW92ZWQgYWJvdmUgNEc7IEkgZG9u4oCZdCByZWNhbGwgdGhlIGV4YWN0IHBsYXRmb3JtLgo+ ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IEZvciB0aGlzIGZhaWx1cmUgLAo+ID4+Pj4+ Cj4gPj4+Pj4+Pj4gRE1BOiBmYWlsZWQgdG8gYWxsb2NhdGUgMjU2IEtpQiBwb29sIGZvciBhdG9t aWMKPiA+Pj4+Pj4+PiBjb2hlcmVudCBhbGxvY2F0aW9uCj4gPj4+Pj4KPiA+Pj4+PiBJcyBkdWUg dG8gOgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiAzNjE4MDgyYwo+ID4+Pj4+ICgiYXJtNjQgdXNl IGJvdGggWk9ORV9ETUEgYW5kIFpPTkVfRE1BMzIiKQo+ID4+Pj4+Cj4gPj4+Pj4gV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIFpPTkVfRE1BIHRvIHN1cHBvcnQgdGhlIFJhc3BiZXJyeSBETUEKPiA+ Pj4+PiByZWdpb24gYmVsb3cgMUcsIHRoZSBjcmFzaGtlcm5lbCBpcyBwbGFjZWQgaW4gdGhlIHVw cGVyIDRHCj4gPj4+Pj4gWk9ORV9ETUFfMzIgcmVnaW9uLiBTaW5jZSB0aGUgY3Jhc2hrZXJuZWwg ZG9lcyBub3QgaGF2ZSBhY2Nlc3MKPiA+Pj4+PiB0byB0aGUgWk9ORV9ETUEgcmVnaW9uLCBpdCBw cmludHMgb3V0IGNhbGwgdHJhY2UgZHVyaW5nIGJvb3R1cC4KPiA+Pj4+Pgo+ID4+Pj4+IEl0IGlz IGR1ZSB0byBoYXZpbmcgdGhpcyBDT05GSUcgaXRlbSAgT04gIDoKPiA+Pj4+Pgo+ID4+Pj4+Cj4g Pj4+Pj4gQ09ORklHX1pPTkVfRE1BPXkKPiA+Pj4+Pgo+ID4+Pj4+IFR1cm5pbmcgb2ZmIFpPTkVf RE1BIGZpeGVzIGEgaXNzdWUgYW5kIFJhc3BiZXJyeSBQSSA0IHdpbGwKPiA+Pj4+PiB1c2UgdGhl IGRldmljZSB0cmVlIHRvIHNwZWNpZnkgbWVtb3J5IGJlbG93IDFHLgo+ID4+Pj4+Cj4gPj4+Pj4K PiA+Pj4+IERpc2FibGluZyBaT05FX0RNQSBpcyB0ZW1wb3Jhcnkgc29sdXRpb24uICBXZSBtYXkg bmVlZCBwcm9wZXIgc29sdXRpb24KPiA+Pj4KPiA+Pj4gUGVyaGFwcyB0aGUgUmFzcGJlcnJ5IHBs YXRmb3JtIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIG5lZWQgc2VwYXJhdGVkICBmcm9tIOKA nHNlcnZlciBjbGFzc+KAnSBBcm0gIGVxdWlwbWVudCA/ICBPciBhdXRvLWNvbmZpZ3VyZWQgb24g Ym9vdCA/ICBDb25zdWx0IGFuIGV4cGVydCA7LSkKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4+PiBJ IHdvdWxkIGxpa2UgdG8gc2VlIENoZW7igJlzIGZlYXR1cmUgYWRkZWQgLCBwZXJoYXBzIGFzIEVY UEVSSU1FTlRBTCwgIHNvIHdlIGNhbiBnZXQgc29tZSBjb25maWd1cmF0aW9uIHRlc3RpbmcgZG9u ZSBvbiBpdC4gICBJdCBjb3JyZWN0cyBoYXZpbmcgYSBETUEgem9uZSBpbiBsb3cgbWVtb3J5IHdo aWxlIGNyYXNoLWtlcm5lbCBpcyBhYm92ZSA0R0IuICBUaGlzIGhhcyBiZWVuIGdvaW5nIG9uIGZv ciBhIHllYXIgbm93Lgo+ID4+Pj4gSSB3aWxsIGFsc28gbGlrZSB0aGlzIHBhdGNoIHRvIGJlIGFk ZGVkIGluIExpbnV4IGFzIGVhcmx5IGFzIHBvc3NpYmxlLgo+ID4+Pj4KPiA+Pj4+IElzc3VlIG1l bnRpb25lZCBieSBtZSBoYXBwZW5zIHdpdGggb3Igd2l0aG91dCB0aGlzIHBhdGNoLgo+ID4+Pj4K PiA+Pj4+IFRoaXMgcGF0Y2gtc2V0IGNhbiBjb25zaWRlciBmaXhpbmcgYmVjYXVzZSBpdCB1c2Vz IGxvdyBtZW1vcnkgZm9yIERNQQo+ID4+Pj4gJiBzd2lvdGxiIG9ubHkuCj4gPj4+PiBXZSBjYW4g Y29uc2lkZXIgcmVzdHJpY3RpbmcgY3Jhc2hrZXJuZWwgd2l0aGluIHRoZSByZXF1aXJlZCByYW5n ZSBsaWtlIGJlbG93Cj4gPj4+Pgo+ID4+Pj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9jcmFzaF9jb3Jl LmMgYi9rZXJuZWwvY3Jhc2hfY29yZS5jCj4gPj4+PiBpbmRleCA3ZjllNWE2ZGM0OGMuLmJkNjdi OTBkMzViZCAxMDA2NDQKPiA+Pj4+IC0tLSBhL2tlcm5lbC9jcmFzaF9jb3JlLmMKPiA+Pj4+ICsr KyBiL2tlcm5lbC9jcmFzaF9jb3JlLmMKPiA+Pj4+IEBAIC0zNTQsNyArMzU0LDcgQEAgaW50IF9f aW5pdCByZXNlcnZlX2NyYXNoa2VybmVsX2xvdyh2b2lkKQo+ID4+Pj4gICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAwOwo+ID4+Pj4gICAgICAgfQo+ID4+Pj4KPiA+Pj4+IC0gICAgICAgbG93 X2Jhc2UgPSBtZW1ibG9ja19maW5kX2luX3JhbmdlKDAsIDFVTEwgPDwgMzIsIGxvd19zaXplLCBD UkFTSF9BTElHTik7Cj4gPj4+PiArICAgICAgIGxvd19iYXNlID0gbWVtYmxvY2tfZmluZF9pbl9y YW5nZSgwLDB4YzAwMDAwMDAsIGxvd19zaXplLCBDUkFTSF9BTElHTik7Cj4gPj4+PiAgICAgICBp ZiAoIWxvd19iYXNlKSB7Cj4gPj4+PiAgICAgICAgICAgICAgIHByX2VycigiQ2Fubm90IHJlc2Vy dmUgJWxkTUIgY3Jhc2hrZXJuZWwgbG93IG1lbW9yeSwKPiA+Pj4+IHBsZWFzZSB0cnkgc21hbGxl ciBzaXplLlxuIiwKPiA+Pj4+ICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKShs b3dfc2l6ZSA+PiAyMCkpOwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+ICAgIEkgc3VzcGVjdCAgMHhjMDAw MDAwMCAgd291bGQgbmVlZCB0byBiZSBhIENPTkZJRyBpdGVtICBhbmQgbm90IGhhcmQtY29kZWQu Cj4gPj4+Cj4gPj4gaWYgeW91IGNvbnNpZGVyIHRoaXMgYXMgdmFsaWQgY2hhbmdlLCAgY2FuIHlv dSBwbGVhc2UgaW5jb3Jwb3JhdGUgYXMKPiA+PiBwYXJ0IG9mIHlvdXIgcGF0Y2gtc2V0Lgo+ID4K PiA+IEFmdGVyIGNvbW1pdCAxYThlMWNlZjcgKCJhcm02NDogdXNlIGJvdGggWk9ORV9ETUEgYW5k IFpPTkVfRE1BMzIiKe+8jHRoZSAwLTRHIG1lbW9yeSBpcyBzcGxpdGVkCj4gPiB0byBETUEgW21l bSAweDAwMDAwMDAwMDAwMDAwMDAtMHgwMDAwMDAwMDNmZmZmZmZmXSBhbmQgRE1BMzIgW21lbSAw eDAwMDAwMDAwNDAwMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXSBvbiBhcm02NC4KPiA+Cj4gPiBG cm9tIHRoZSBhYm92ZSBkaXNjdXNzaW9uLCBvbiB5b3VyIHBsYXRmb3JtLCB0aGUgbG93IGNyYXNo a2VybmVsIGZhbGwgaW4gRE1BMzIgcmVnaW9uLCBidXQgeW91ciBlbnZpcm9ubWVudCBuZWVkcyB0 byBhY2Nlc3MgRE1BCj4gPiByZWdpb24sIHNvIHRoZXJlIGlzIHRoZSBjYWxsIHRyYWNlLgo+ID4K PiA+IEkgaGF2ZSBhIHF1ZXN0aW9uLCB3aHkgZG8geW91IGNob29zZSAweGMwMDAwMDAwIGhlcmU/ Cj4gPgo+ID4gQmVzaWRlcywgdGhpcyBpcyBjb21tb24gY29kZSwgd2UgYWxzbyBuZWVkIHRvIGNv bnNpZGVyIGFib3V0IHg4Ni4KPiA+Cj4KPiAgKyBuc2FlbnpqdWxpZW5uZUBzdXNlLmRlCj4KPiAg IEV4YWN0bHkgLiAgVGhpcyBpcyB3aHkgaXQgbmVlZHMgdG8gYmUgYSBDT05GSUcgb3B0aW9uIGZv ciAgUmFzcGJlcnJ5IC4uLCAgb3IgZGV2aWNlIHRyZWUgb3B0aW9uLgo+Cj4KPiAgIFdlIGNvdWxk IHJldmVydCAxYThlMWNlZjcgc2luY2UgaXQgYnJva2UgIEFybSBrZHVtcCB0b28uCgpXZWxsLCB1 bmZvcnR1bmF0ZWx5IHRoZSBwYXRjaCBmb3IgY29tbWl0IDFhOGUxY2VmNzYwMyAoImFybTY0OiB1 c2UKYm90aCBaT05FX0RNQSBhbmQgWk9ORV9ETUEzMiIpIHdhcyBub3QgQ2MnZWQgdG8gdGhlIGtl eGVjIG1haWxpbmcKbGlzdCwgdGh1cyB3ZSBjb3VsZG4ndCBnZXQgbWFueSBleWVzIG9uIGl0IGZv ciBhIHRob3JvdWdoIHJldmlldyBmcm9tCmtleGVjL2tkdW1wIHAtby12LgoKQWxzbyB3ZSBoaXN0 b3JpY2FsbHkgbmV2ZXIgaGFkIGRpc3RpbmN0aW9uIGluIGNvbW1vbiBhcmNoIGNvZGUgb24gdGhl CmJhc2lzIG9mIHRoZSBpbnRlbmRlZCBlbmQgdXNlLWNhc2U6IGVtYmVkZGVkLCBzZXJ2ZXIgb3Ig YXV0b21vdGl2ZSwgc28KSSBhbSBub3Qgc3VyZSBpbnRyb2R1Y2luZyBhIFJhc3BiZXJyeSBzcGVj aWZpYyBDT05GSUcgb3B0aW9uIHdvdWxkIGJlCmEgZ29vZCBpZGVhLgoKU28sIHJhdGhlciB0aGFu IHJldmVydGluZyB0aGUgcGF0Y2gsIHdlIGNhbiBsb29rIGF0IGFkZHJlc3NpbmcgdGhlCnNhbWUg cHJvcGVybHkgdGhpcyB0aW1lIC0gZXNwZWNpYWxseSBmcm9tIGEga2R1bXAgcC1vLXYuClRoaXMg aXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQgYnkgc29tZSBSZWQgSGF0IGFybTY0IHBhcnRuZXJzIHdp dGgKdXBzdHJlYW0ga2VybmVsIGFsc28gYW5kIGFzIHdlIGhhdmUgbm90aWNlZCBpbiB0aGUgcGFz dCBhcyB3ZWxsLApoYXJkY29kaW5nIHRoZSBwbGFjZW1lbnQgb2YgdGhlIGNyYXNoa2VybmVsIGJh c2UgYWRkcmVzcyAodW5sZXNzIHRoZQpiYXNlIGFkZHJlc3MgaXMgc3BlY2lmaWVkIGJ5IGEgY3Jh c2hrZXJuZWw9WEBZIGxpa2UgYm9vdGFyZ3MpIGlzIGFsc28Kbm90IGEgcG9ydGFibGUgc3VnZ2Vz dGlvbi4KCkkgYW0gd29ya2luZyBvbiBhIHBvc3NpYmxlIGZpeCBhbmQgd2lsbCBoYXZlIG1vcmUg dXBkYXRlcyBvbiB0aGUgc2FtZQppbiBhIGRheS1vci10d28uCgpUaGFua3MsCkJodXBlc2gKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprZXhlYyBtYWls aW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg==