From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12D14C38A2D for ; Wed, 26 Oct 2022 12:06:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233655AbiJZMG2 (ORCPT ); Wed, 26 Oct 2022 08:06:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233652AbiJZMGZ (ORCPT ); Wed, 26 Oct 2022 08:06:25 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C368D836F0 for ; Wed, 26 Oct 2022 05:06:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666785981; 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=jx/F/uRgZqzTUF3j0yMZr1XDBFmLGP3lcblmwVG6BfE=; b=U47NQ9SJmhrhSnhNe4bALbVj12f0knBFNXCKoqxDifWUtEjggLhbAH20MLdTLgQpxk/Ds8 mEguPNkJEA+zn4BroQ1M2sm6jodg4S2AReHKiTSZeIULpwkswDQJ6HZX+BMnQh241ZWnR5 DYsJDpd0IYDYOm2eAnXjqaPConveTdw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-448-p0dk6y4kO7GzzFm0qTXzgg-1; Wed, 26 Oct 2022 08:06:19 -0400 X-MC-Unique: p0dk6y4kO7GzzFm0qTXzgg-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4C985811E81; Wed, 26 Oct 2022 12:05:49 +0000 (UTC) Received: from localhost (ovpn-12-35.pek2.redhat.com [10.72.12.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 21236477F55; Wed, 26 Oct 2022 12:05:46 +0000 (UTC) Date: Wed, 26 Oct 2022 20:05:41 +0800 From: Baoquan He To: Xianting Tian Cc: Conor Dooley , Palmer Dabbelt , paul.walmsley@sifive.com, aou@eecs.berkeley.edu, anup@brainfault.org, heiko@sntech.de, guoren@kernel.org, mick@ics.forth.gr, alexandre.ghiti@canonical.com, vgoyal@redhat.com, dyoung@redhat.com, corbet@lwn.net, bagasdotme@gmail.com, k-hagio-ab@nec.com, lijiang@redhat.com, kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, crash-utility@redhat.com, heinrich.schuchardt@canonical.com, hschauhan@nulltrace.org, yixun.lan@gmail.com Subject: Re: [PATCH V4 1/2] RISC-V: Add arch_crash_save_vmcoreinfo support Message-ID: References: <20221019103623.7008-1-xianting.tian@linux.alibaba.com> <20221019103623.7008-2-xianting.tian@linux.alibaba.com> <30621b3b-47ba-d612-cfb0-583d779691a3@linux.alibaba.com> <6af05838-fa58-8197-f3ce-ca95457077a7@linux.alibaba.com> <5df30e57-88ae-0a3b-2c1a-b962363d8670@linux.alibaba.com> <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Xianting, On 10/26/22 at 05:44pm, Xianting Tian wrote: > > 在 2022/10/26 下午5:25, Conor Dooley 写道: > > On Wed, Oct 26, 2022 at 05:08:11PM +0800, Xianting Tian wrote: > > > Hi Palmer, Conor > > > > > > Is this version OK for you? > > The weird ifdef/IS_ENABLED thing was the only comment I had. It's a bit > > odd & I notice Baoquan brought it up too. I didn't (and won't) give you > > a reviewed by on these patches because I don't understand the area well > > enough. The general nitpickery seems to be sorted though. > > I checked the KERNEL_LINK_ADDR definition of riscv,  it is valid for > CONFIG_64BIT and !CONFIG_64BIT. This series looks good to me. My only minor concern is if we can make the arch_crash_save_vmcoreinfo() as below. I don't understand why we have to have the CONFIG_64BIT ifdeffery and the IS_ENABLED(CONFIG_64BIT) between two adjacent code blocks. Not sure if we are saying the same thing. +void arch_crash_save_vmcoreinfo(void) +{ + VMCOREINFO_NUMBER(VA_BITS); + VMCOREINFO_NUMBER(phys_ram_base); + + vmcoreinfo_append_str("NUMBER(PAGE_OFFSET)=0x%lx\n", PAGE_OFFSET); + vmcoreinfo_append_str("NUMBER(VMALLOC_START)=0x%lx\n", VMALLOC_START); + vmcoreinfo_append_str("NUMBER(VMALLOC_END)=0x%lx\n", VMALLOC_END); + vmcoreinfo_append_str("NUMBER(VMEMMAP_START)=0x%lx\n", VMEMMAP_START); + vmcoreinfo_append_str("NUMBER(VMEMMAP_END)=0x%lx\n", VMEMMAP_END); +#ifdef CONFIG_64BIT + vmcoreinfo_append_str("NUMBER(MODULES_VADDR)=0x%lx\n", MODULES_VADDR); + vmcoreinfo_append_str("NUMBER(MODULES_END)=0x%lx\n", MODULES_END); + vmcoreinfo_append_str("NUMBER(KERNEL_LINK_ADDR)=0x%lx\n", KERNEL_LINK_ADDR); +#endif +} > > Maybe we can remove IS_ENABLED(CONFIG_64BIT) > > arch/riscv/include/asm/pgtable.h > #define ADDRESS_SPACE_END       (UL(-1)) > #ifdef CONFIG_64BIT > /* Leave 2GB for kernel and BPF at the end of the address space */ > #define KERNEL_LINK_ADDR        (ADDRESS_SPACE_END - SZ_2G + 1) > #else > #define KERNEL_LINK_ADDR        PAGE_OFFSET > #endif > > arch/riscv/include/asm/page.h > #ifdef CONFIG_64BIT > #ifdef CONFIG_MMU > #define PAGE_OFFSET             kernel_map.page_offset > #else > #define PAGE_OFFSET             _AC(CONFIG_PAGE_OFFSET, UL) > #endif > /* >  * By default, CONFIG_PAGE_OFFSET value corresponds to SV48 address space so >  * define the PAGE_OFFSET value for SV39. >  */ > #define PAGE_OFFSET_L4          _AC(0xffffaf8000000000, UL) > #define PAGE_OFFSET_L3          _AC(0xffffffd800000000, UL) > #else > #define PAGE_OFFSET             _AC(CONFIG_PAGE_OFFSET, UL) > #endif /* CONFIG_64BIT */ > > > > > Thanks, > > Conor. > > > > > 在 2022/10/20 下午12:40, Xianting Tian 写道: > > > > 在 2022/10/20 上午11:05, Baoquan He 写道: > > > > > On 10/20/22 at 10:17am, Xianting Tian wrote: > > > > > > 在 2022/10/20 上午10:08, Baoquan He 写道: > > > > > > > On 10/19/22 at 06:36pm, Xianting Tian wrote: > > > > > > > > Add arch_crash_save_vmcoreinfo(), which exports VM > > > > > > > > layout(MODULES, VMALLOC, > > > > > > > > VMEMMAP ranges and KERNEL_LINK_ADDR), va bits and ram > > > > > > > > base for vmcore. > > > > > > > > > > > > > > > > Default pagetable levels and PAGE_OFFSET aren't same for > > > > > > > > different kernel > > > > > > > > version as below. For pagetable levels, it sets sv57 by > > > > > > > > default and falls > > > > > > > > back to setting sv48 at boot time if sv57 is not > > > > > > > > supported by the hardware. > > > > > > > > > > > > > > > > For ram base, the default value is 0x80200000 for qemu > > > > > > > > riscv64 env and, > > > > > > > > for example, is 0x200000 on the XuanTie 910 CPU. > > > > > > > > > > > > > > > >    * Linux Kernel 5.18 ~ > > > > > > > >    *      PGTABLE_LEVELS = 5 > > > > > > > >    *      PAGE_OFFSET = 0xff60000000000000 > > > > > > > >    * Linux Kernel 5.17 ~ > > > > > > > >    *      PGTABLE_LEVELS = 4 > > > > > > > >    *      PAGE_OFFSET = 0xffffaf8000000000 > > > > > > > >    * Linux Kernel 4.19 ~ > > > > > > > >    *      PGTABLE_LEVELS = 3 > > > > > > > >    *      PAGE_OFFSET = 0xffffffe000000000 > > > > > > > > > > > > > > > > Since these configurations change from time to time and > > > > > > > > version to version, > > > > > > > > it is preferable to export them via vmcoreinfo than to > > > > > > > > change the crash's > > > > > > > > code frequently, it can simplify the development of crash tool. > > > > > > > > > > > > > > > > Signed-off-by: Xianting Tian > > > > > > > > --- > > > > > > > >    arch/riscv/kernel/Makefile     |  1 + > > > > > > > >    arch/riscv/kernel/crash_core.c | 23 +++++++++++++++++++++++ > > > > > > > >    2 files changed, 24 insertions(+) > > > > > > > >    create mode 100644 arch/riscv/kernel/crash_core.c > > > > > > > > > > > > > > > > diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile > > > > > > > > index db6e4b1294ba..4cf303a779ab 100644 > > > > > > > > --- a/arch/riscv/kernel/Makefile > > > > > > > > +++ b/arch/riscv/kernel/Makefile > > > > > > > > @@ -81,6 +81,7 @@ obj-$(CONFIG_KGDB)        += kgdb.o > > > > > > > >    obj-$(CONFIG_KEXEC_CORE)    += kexec_relocate.o > > > > > > > > crash_save_regs.o machine_kexec.o > > > > > > > >    obj-$(CONFIG_KEXEC_FILE)    += elf_kexec.o machine_kexec_file.o > > > > > > > >    obj-$(CONFIG_CRASH_DUMP)    += crash_dump.o > > > > > > > > +obj-$(CONFIG_CRASH_CORE)    += crash_core.o > > > > > > > >    obj-$(CONFIG_JUMP_LABEL)    += jump_label.o > > > > > > > > diff --git a/arch/riscv/kernel/crash_core.c > > > > > > > > b/arch/riscv/kernel/crash_core.c > > > > > > > > new file mode 100644 > > > > > > > > index 000000000000..3e889d0ed7bd > > > > > > > > --- /dev/null > > > > > > > > +++ b/arch/riscv/kernel/crash_core.c > > > > > > > > @@ -0,0 +1,23 @@ > > > > > > > > +// SPDX-License-Identifier: GPL-2.0-only > > > > > > > > + > > > > > > > > +#include > > > > > > > > +#include > > > > > > > > + > > > > > > > > +void arch_crash_save_vmcoreinfo(void) > > > > > > > > +{ > > > > > > > > +    VMCOREINFO_NUMBER(VA_BITS); > > > > > > > > +    VMCOREINFO_NUMBER(phys_ram_base); > > > > > > > > + > > > > > > > > + > > > > > > > > vmcoreinfo_append_str("NUMBER(PAGE_OFFSET)=0x%lx\n", > > > > > > > > PAGE_OFFSET); > > > > > > > > + vmcoreinfo_append_str("NUMBER(VMALLOC_START)=0x%lx\n", > > > > > > > > VMALLOC_START); > > > > > > > > + > > > > > > > > vmcoreinfo_append_str("NUMBER(VMALLOC_END)=0x%lx\n", > > > > > > > > VMALLOC_END); > > > > > > > > + vmcoreinfo_append_str("NUMBER(VMEMMAP_START)=0x%lx\n", > > > > > > > > VMEMMAP_START); > > > > > > > > + > > > > > > > > vmcoreinfo_append_str("NUMBER(VMEMMAP_END)=0x%lx\n", > > > > > > > > VMEMMAP_END); > > > > > > > > +#ifdef CONFIG_64BIT > > > > > > > > + vmcoreinfo_append_str("NUMBER(MODULES_VADDR)=0x%lx\n", > > > > > > > > MODULES_VADDR); > > > > > > > > + > > > > > > > > vmcoreinfo_append_str("NUMBER(MODULES_END)=0x%lx\n", > > > > > > > > MODULES_END); > > > > > > > > +#endif > > > > > > > > + > > > > > > > > +    if (IS_ENABLED(CONFIG_64BIT)) > > > > > > > > + > > > > > > > > vmcoreinfo_append_str("NUMBER(KERNEL_LINK_ADDR)=0x%lx\n", > > > > > > > > KERNEL_LINK_ADDR); > > > > > > > Wondering why you don't put KERNEL_LINK_ADDR exporting into the above > > > > > > > ifdeffery scope, with that you can save one line of > > > > > > > "IS_ENABLED(CONFIG_64BIT)". > > > > > > I followed the rule in print_vm_layout() of > > > > > > arch/riscv/mm/init.c, which used > > > > > > IS_ENABLED when print the value of KERNEL_LINK_ADDR. > > > > > > > > > > > I see. There's PAGE_OFFSET in the middle. Thanks. > > > > > > > > > >          print_ml("lowmem", (unsigned long)PAGE_OFFSET, > > > > >                  (unsigned long)high_memory) > > > > > > > > > > So now, do you think if it's necessary to have another > > > > > IS_ENABLED(CONFIG_64BIT) in the current arch_crash_save_vmcoreinfo()? > > > > For which MACRO?  I think current code for PAGE_OFFSET is OK. > > > > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 70CA3FA3744 for ; Wed, 26 Oct 2022 12:06:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-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=n/YNrxqiUC6hUWCpyk/FzeF08aw4QhwT+6xxB/80HFM=; b=IPAeYIpCtvL4oK uW+QAQrtbuzxIaiXE/o8sjiZzRlE515D6bpo6n7C05hx/rANgLa8pFnGS3WlbOunPVFqupJBesLAQ DRvHpZW54fBF/MEp3tC3meY8DToNmRDucHaPz48qE1iiSHaPgCQH5w2R7rDWJh5MfU7yRUNsdXX25 sRvu+vqvEBxpjASQeejZJOOKHMom/4VcwEh2mHg41ILjXOCJK3utx1/ig5+22eI+E8Ftf3GS3TFkp JVEVW/nfWEMifkr8qE6FnC8jQQho45C3SbLe9rH/0Rizo/4CnabqAxJ5aT+fKeEbukhJp07DAnJuy SE5G4lJp85pdITOzXBsA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfB2-0097vb-Kf; Wed, 26 Oct 2022 12:06:32 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfAu-0097tb-BX for linux-riscv@lists.infradead.org; Wed, 26 Oct 2022 12:06:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666785981; 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=jx/F/uRgZqzTUF3j0yMZr1XDBFmLGP3lcblmwVG6BfE=; b=U47NQ9SJmhrhSnhNe4bALbVj12f0knBFNXCKoqxDifWUtEjggLhbAH20MLdTLgQpxk/Ds8 mEguPNkJEA+zn4BroQ1M2sm6jodg4S2AReHKiTSZeIULpwkswDQJ6HZX+BMnQh241ZWnR5 DYsJDpd0IYDYOm2eAnXjqaPConveTdw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-448-p0dk6y4kO7GzzFm0qTXzgg-1; Wed, 26 Oct 2022 08:06:19 -0400 X-MC-Unique: p0dk6y4kO7GzzFm0qTXzgg-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4C985811E81; Wed, 26 Oct 2022 12:05:49 +0000 (UTC) Received: from localhost (ovpn-12-35.pek2.redhat.com [10.72.12.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 21236477F55; Wed, 26 Oct 2022 12:05:46 +0000 (UTC) Date: Wed, 26 Oct 2022 20:05:41 +0800 From: Baoquan He To: Xianting Tian Cc: Conor Dooley , Palmer Dabbelt , paul.walmsley@sifive.com, aou@eecs.berkeley.edu, anup@brainfault.org, heiko@sntech.de, guoren@kernel.org, mick@ics.forth.gr, alexandre.ghiti@canonical.com, vgoyal@redhat.com, dyoung@redhat.com, corbet@lwn.net, bagasdotme@gmail.com, k-hagio-ab@nec.com, lijiang@redhat.com, kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, crash-utility@redhat.com, heinrich.schuchardt@canonical.com, hschauhan@nulltrace.org, yixun.lan@gmail.com Subject: Re: [PATCH V4 1/2] RISC-V: Add arch_crash_save_vmcoreinfo support Message-ID: References: <20221019103623.7008-1-xianting.tian@linux.alibaba.com> <20221019103623.7008-2-xianting.tian@linux.alibaba.com> <30621b3b-47ba-d612-cfb0-583d779691a3@linux.alibaba.com> <6af05838-fa58-8197-f3ce-ca95457077a7@linux.alibaba.com> <5df30e57-88ae-0a3b-2c1a-b962363d8670@linux.alibaba.com> <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221026_050624_501364_4CE473FA X-CRM114-Status: GOOD ( 42.43 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org SGkgWGlhbnRpbmcsIAoKT24gMTAvMjYvMjIgYXQgMDU6NDRwbSwgWGlhbnRpbmcgVGlhbiB3cm90 ZToKPiAKPiDlnKggMjAyMi8xMC8yNiDkuIvljYg1OjI1LCBDb25vciBEb29sZXkg5YaZ6YGTOgo+ ID4gT24gV2VkLCBPY3QgMjYsIDIwMjIgYXQgMDU6MDg6MTFQTSArMDgwMCwgWGlhbnRpbmcgVGlh biB3cm90ZToKPiA+ID4gSGkgUGFsbWVyLCBDb25vcgo+ID4gPiAKPiA+ID4gSXMgdGhpcyB2ZXJz aW9uIE9LIGZvciB5b3U/Cj4gPiBUaGUgd2VpcmQgaWZkZWYvSVNfRU5BQkxFRCB0aGluZyB3YXMg dGhlIG9ubHkgY29tbWVudCBJIGhhZC4gSXQncyBhIGJpdAo+ID4gb2RkICYgSSBub3RpY2UgQmFv cXVhbiBicm91Z2h0IGl0IHVwIHRvby4gSSBkaWRuJ3QgKGFuZCB3b24ndCkgZ2l2ZSB5b3UKPiA+ IGEgcmV2aWV3ZWQgYnkgb24gdGhlc2UgcGF0Y2hlcyBiZWNhdXNlIEkgZG9uJ3QgdW5kZXJzdGFu ZCB0aGUgYXJlYSB3ZWxsCj4gPiBlbm91Z2guIFRoZSBnZW5lcmFsIG5pdHBpY2tlcnkgc2VlbXMg dG8gYmUgc29ydGVkIHRob3VnaC4KPiAKPiBJIGNoZWNrZWQgdGhlIEtFUk5FTF9MSU5LX0FERFIg ZGVmaW5pdGlvbiBvZiByaXNjdizCoCBpdCBpcyB2YWxpZCBmb3IKPiBDT05GSUdfNjRCSVQgYW5k ICFDT05GSUdfNjRCSVQuCgpUaGlzIHNlcmllcyBsb29rcyBnb29kIHRvIG1lLiBNeSBvbmx5IG1p bm9yIGNvbmNlcm4gaXMgaWYgd2UgY2FuIG1ha2UKdGhlIGFyY2hfY3Jhc2hfc2F2ZV92bWNvcmVp bmZvKCkgYXMgYmVsb3cuIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgd2UKaGF2ZSB0byBoYXZlIHRo ZSBDT05GSUdfNjRCSVQgaWZkZWZmZXJ5IGFuZCB0aGUgSVNfRU5BQkxFRChDT05GSUdfNjRCSVQp CmJldHdlZW4gdHdvIGFkamFjZW50IGNvZGUgYmxvY2tzLiBOb3Qgc3VyZSBpZiB3ZSBhcmUgc2F5 aW5nIHRoZSBzYW1lCnRoaW5nLgoKK3ZvaWQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8odm9p ZCkKK3sKKyAgICAgICBWTUNPUkVJTkZPX05VTUJFUihWQV9CSVRTKTsKKyAgICAgICBWTUNPUkVJ TkZPX05VTUJFUihwaHlzX3JhbV9iYXNlKTsKKworICAgICAgIHZtY29yZWluZm9fYXBwZW5kX3N0 cigiTlVNQkVSKFBBR0VfT0ZGU0VUKT0weCVseFxuIiwgUEFHRV9PRkZTRVQpOworICAgICAgIHZt Y29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNQUxMT0NfU1RBUlQpPTB4JWx4XG4iLCBWTUFM TE9DX1NUQVJUKTsKKyAgICAgICB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihWTUFMTE9D X0VORCk9MHglbHhcbiIsIFZNQUxMT0NfRU5EKTsKKyAgICAgICB2bWNvcmVpbmZvX2FwcGVuZF9z dHIoIk5VTUJFUihWTUVNTUFQX1NUQVJUKT0weCVseFxuIiwgVk1FTU1BUF9TVEFSVCk7CisgICAg ICAgdm1jb3JlaW5mb19hcHBlbmRfc3RyKCJOVU1CRVIoVk1FTU1BUF9FTkQpPTB4JWx4XG4iLCBW TUVNTUFQX0VORCk7CisjaWZkZWYgQ09ORklHXzY0QklUCisJdm1jb3JlaW5mb19hcHBlbmRfc3Ry KCJOVU1CRVIoTU9EVUxFU19WQUREUik9MHglbHhcbiIsIE1PRFVMRVNfVkFERFIpOworICAgICAg IHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKE1PRFVMRVNfRU5EKT0weCVseFxuIiwgTU9E VUxFU19FTkQpOworICAgICAgIHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKEtFUk5FTF9M SU5LX0FERFIpPTB4JWx4XG4iLCBLRVJORUxfTElOS19BRERSKTsKKyNlbmRpZgorfQoKPiAKPiBN YXliZSB3ZSBjYW4gcmVtb3ZlIElTX0VOQUJMRUQoQ09ORklHXzY0QklUKQo+IAo+IGFyY2gvcmlz Y3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gI2RlZmluZSBBRERSRVNTX1NQQUNFX0VORMKgwqDC oMKgwqDCoCAoVUwoLTEpKQo+ICNpZmRlZiBDT05GSUdfNjRCSVQKPiAvKiBMZWF2ZSAyR0IgZm9y IGtlcm5lbCBhbmQgQlBGIGF0IHRoZSBlbmQgb2YgdGhlIGFkZHJlc3Mgc3BhY2UgKi8KPiAjZGVm aW5lIEtFUk5FTF9MSU5LX0FERFLCoMKgwqDCoMKgwqDCoCAoQUREUkVTU19TUEFDRV9FTkQgLSBT Wl8yRyArIDEpCj4gI2Vsc2UKPiAjZGVmaW5lIEtFUk5FTF9MSU5LX0FERFLCoMKgwqDCoMKgwqDC oCBQQUdFX09GRlNFVAo+ICNlbmRpZgo+IAo+IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5o Cj4gI2lmZGVmIENPTkZJR182NEJJVAo+ICNpZmRlZiBDT05GSUdfTU1VCj4gI2RlZmluZSBQQUdF X09GRlNFVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrZXJuZWxfbWFwLnBhZ2Vfb2Zmc2V0Cj4g I2Vsc2UKPiAjZGVmaW5lIFBBR0VfT0ZGU0VUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9BQyhD T05GSUdfUEFHRV9PRkZTRVQsIFVMKQo+ICNlbmRpZgo+IC8qCj4gwqAqIEJ5IGRlZmF1bHQsIENP TkZJR19QQUdFX09GRlNFVCB2YWx1ZSBjb3JyZXNwb25kcyB0byBTVjQ4IGFkZHJlc3Mgc3BhY2Ug c28KPiDCoCogZGVmaW5lIHRoZSBQQUdFX09GRlNFVCB2YWx1ZSBmb3IgU1YzOS4KPiDCoCovCj4g I2RlZmluZSBQQUdFX09GRlNFVF9MNMKgwqDCoMKgwqDCoMKgwqDCoCBfQUMoMHhmZmZmYWY4MDAw MDAwMDAwLCBVTCkKPiAjZGVmaW5lIFBBR0VfT0ZGU0VUX0wzwqDCoMKgwqDCoMKgwqDCoMKgIF9B QygweGZmZmZmZmQ4MDAwMDAwMDAsIFVMKQo+ICNlbHNlCj4gI2RlZmluZSBQQUdFX09GRlNFVMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfQUMoQ09ORklHX1BBR0VfT0ZGU0VULCBVTCkKPiAjZW5k aWYgLyogQ09ORklHXzY0QklUICovCj4gCj4gPiAKPiA+IFRoYW5rcywKPiA+IENvbm9yLgo+ID4g Cj4gPiA+IOWcqCAyMDIyLzEwLzIwIOS4i+WNiDEyOjQwLCBYaWFudGluZyBUaWFuIOWGmemBkzoK PiA+ID4gPiDlnKggMjAyMi8xMC8yMCDkuIrljYgxMTowNSwgQmFvcXVhbiBIZSDlhpnpgZM6Cj4g PiA+ID4gPiBPbiAxMC8yMC8yMiBhdCAxMDoxN2FtLCBYaWFudGluZyBUaWFuIHdyb3RlOgo+ID4g PiA+ID4gPiDlnKggMjAyMi8xMC8yMCDkuIrljYgxMDowOCwgQmFvcXVhbiBIZSDlhpnpgZM6Cj4g PiA+ID4gPiA+ID4gT24gMTAvMTkvMjIgYXQgMDY6MzZwbSwgWGlhbnRpbmcgVGlhbiB3cm90ZToK PiA+ID4gPiA+ID4gPiA+IEFkZCBhcmNoX2NyYXNoX3NhdmVfdm1jb3JlaW5mbygpLCB3aGljaCBl eHBvcnRzIFZNCj4gPiA+ID4gPiA+ID4gPiBsYXlvdXQoTU9EVUxFUywgVk1BTExPQywKPiA+ID4g PiA+ID4gPiA+IFZNRU1NQVAgcmFuZ2VzIGFuZCBLRVJORUxfTElOS19BRERSKSwgdmEgYml0cyBh bmQgcmFtCj4gPiA+ID4gPiA+ID4gPiBiYXNlIGZvciB2bWNvcmUuCj4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+IERlZmF1bHQgcGFnZXRhYmxlIGxldmVscyBhbmQgUEFHRV9PRkZTRVQg YXJlbid0IHNhbWUgZm9yCj4gPiA+ID4gPiA+ID4gPiBkaWZmZXJlbnQga2VybmVsCj4gPiA+ID4g PiA+ID4gPiB2ZXJzaW9uIGFzIGJlbG93LiBGb3IgcGFnZXRhYmxlIGxldmVscywgaXQgc2V0cyBz djU3IGJ5Cj4gPiA+ID4gPiA+ID4gPiBkZWZhdWx0IGFuZCBmYWxscwo+ID4gPiA+ID4gPiA+ID4g YmFjayB0byBzZXR0aW5nIHN2NDggYXQgYm9vdCB0aW1lIGlmIHN2NTcgaXMgbm90Cj4gPiA+ID4g PiA+ID4gPiBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiBGb3IgcmFtIGJhc2UsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDB4ODAyMDAwMDAg Zm9yIHFlbXUKPiA+ID4gPiA+ID4gPiA+IHJpc2N2NjQgZW52IGFuZCwKPiA+ID4gPiA+ID4gPiA+ IGZvciBleGFtcGxlLCBpcyAweDIwMDAwMCBvbiB0aGUgWHVhblRpZSA5MTAgQ1BVLgo+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCAqIExpbnV4IEtlcm5lbCA1LjE4IH4KPiA+ ID4gPiA+ID4gPiA+ICDCoMKgICrCoMKgwqDCoMKgIFBHVEFCTEVfTEVWRUxTID0gNQo+ID4gPiA+ ID4gPiA+ID4gIMKgwqAgKsKgwqDCoMKgwqAgUEFHRV9PRkZTRVQgPSAweGZmNjAwMDAwMDAwMDAw MDAKPiA+ID4gPiA+ID4gPiA+ICDCoMKgICogTGludXggS2VybmVsIDUuMTcgfgo+ID4gPiA+ID4g PiA+ID4gIMKgwqAgKsKgwqDCoMKgwqAgUEdUQUJMRV9MRVZFTFMgPSA0Cj4gPiA+ID4gPiA+ID4g PiAgwqDCoCAqwqDCoMKgwqDCoCBQQUdFX09GRlNFVCA9IDB4ZmZmZmFmODAwMDAwMDAwMAo+ID4g PiA+ID4gPiA+ID4gIMKgwqAgKiBMaW51eCBLZXJuZWwgNC4xOSB+Cj4gPiA+ID4gPiA+ID4gPiAg wqDCoCAqwqDCoMKgwqDCoCBQR1RBQkxFX0xFVkVMUyA9IDMKPiA+ID4gPiA+ID4gPiA+ICDCoMKg ICrCoMKgwqDCoMKgIFBBR0VfT0ZGU0VUID0gMHhmZmZmZmZlMDAwMDAwMDAwCj4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IFNpbmNlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGNoYW5nZSBm cm9tIHRpbWUgdG8gdGltZSBhbmQKPiA+ID4gPiA+ID4gPiA+IHZlcnNpb24gdG8gdmVyc2lvbiwK PiA+ID4gPiA+ID4gPiA+IGl0IGlzIHByZWZlcmFibGUgdG8gZXhwb3J0IHRoZW0gdmlhIHZtY29y ZWluZm8gdGhhbiB0bwo+ID4gPiA+ID4gPiA+ID4gY2hhbmdlIHRoZSBjcmFzaCdzCj4gPiA+ID4g PiA+ID4gPiBjb2RlIGZyZXF1ZW50bHksIGl0IGNhbiBzaW1wbGlmeSB0aGUgZGV2ZWxvcG1lbnQg b2YgY3Jhc2ggdG9vbC4KPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9m Zi1ieTogWGlhbnRpbmcgVGlhbiA8eGlhbnRpbmcudGlhbkBsaW51eC5hbGliYWJhLmNvbT4KPiA+ ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gIMKgwqAgYXJjaC9yaXNjdi9rZXJuZWwv TWFrZWZpbGXCoMKgwqDCoCB8wqAgMSArCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBhcmNoL3Jpc2N2 L2tlcm5lbC9jcmFzaF9jb3JlLmMgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ ID4gPiA+ID4gIMKgwqAgMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspCj4gPiA+ID4g PiA+ID4gPiAgwqDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNjdi9rZXJuZWwvY3Jhc2hf Y29yZS5jCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCj4gPiA+ ID4gPiA+ID4gPiBpbmRleCBkYjZlNGIxMjk0YmEuLjRjZjMwM2E3NzlhYiAxMDA2NDQKPiA+ID4g PiA+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCj4gPiA+ID4gPiA+ID4g PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9NYWtlZmlsZQo+ID4gPiA+ID4gPiA+ID4gQEAgLTgx LDYgKzgxLDcgQEAgb2JqLSQoQ09ORklHX0tHREIpwqDCoMKgwqDCoMKgwqAgKz0ga2dkYi5vCj4g PiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfS0VYRUNfQ09SRSnCoMKgwqAgKz0ga2V4 ZWNfcmVsb2NhdGUubwo+ID4gPiA+ID4gPiA+ID4gY3Jhc2hfc2F2ZV9yZWdzLm8gbWFjaGluZV9r ZXhlYy5vCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfS0VYRUNfRklMRSnCoMKg wqAgKz0gZWxmX2tleGVjLm8gbWFjaGluZV9rZXhlY19maWxlLm8KPiA+ID4gPiA+ID4gPiA+ICDC oMKgIG9iai0kKENPTkZJR19DUkFTSF9EVU1QKcKgwqDCoCArPSBjcmFzaF9kdW1wLm8KPiA+ID4g PiA+ID4gPiA+ICtvYmotJChDT05GSUdfQ1JBU0hfQ09SRSnCoMKgwqAgKz0gY3Jhc2hfY29yZS5v Cj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfSlVNUF9MQUJFTCnCoMKgwqAgKz0g anVtcF9sYWJlbC5vCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJu ZWwvY3Jhc2hfY29yZS5jCj4gPiA+ID4gPiA+ID4gPiBiL2FyY2gvcmlzY3Yva2VybmVsL2NyYXNo X2NvcmUuYwo+ID4gPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiA+ID4g PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2U4ODlkMGVkN2JkCj4gPiA+ID4gPiA+ID4gPiAtLS0g L2Rldi9udWxsCj4gPiA+ID4gPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcmFzaF9j b3JlLmMKPiA+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjMgQEAKPiA+ID4gPiA+ID4gPiA+ICsv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cj4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2NyYXNoX2NvcmUuaD4KPiA+ID4gPiA+ ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgo+ID4gPiA+ID4gPiA+ID4gKwo+ID4g PiA+ID4gPiA+ID4gK3ZvaWQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8odm9pZCkKPiA+ID4g PiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gPiArwqDCoMKgIFZNQ09SRUlORk9fTlVNQkVSKFZB X0JJVFMpOwo+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoCBWTUNPUkVJTkZPX05VTUJFUihwaHlzX3Jh bV9iYXNlKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+IHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFBBR0VfT0ZGU0VUKT0weCVseFxuIiwK PiA+ID4gPiA+ID4gPiA+IFBBR0VfT0ZGU0VUKTsKPiA+ID4gPiA+ID4gPiA+ICsgdm1jb3JlaW5m b19hcHBlbmRfc3RyKCJOVU1CRVIoVk1BTExPQ19TVEFSVCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ ID4gPiBWTUFMTE9DX1NUQVJUKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+IHZt Y29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNQUxMT0NfRU5EKT0weCVseFxuIiwKPiA+ID4g PiA+ID4gPiA+IFZNQUxMT0NfRU5EKTsKPiA+ID4gPiA+ID4gPiA+ICsgdm1jb3JlaW5mb19hcHBl bmRfc3RyKCJOVU1CRVIoVk1FTU1BUF9TVEFSVCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ID4gPiBW TUVNTUFQX1NUQVJUKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+IHZtY29yZWlu Zm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNRU1NQVBfRU5EKT0weCVseFxuIiwKPiA+ID4gPiA+ID4g PiA+IFZNRU1NQVBfRU5EKTsKPiA+ID4gPiA+ID4gPiA+ICsjaWZkZWYgQ09ORklHXzY0QklUCj4g PiA+ID4gPiA+ID4gPiArIHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKE1PRFVMRVNfVkFE RFIpPTB4JWx4XG4iLAo+ID4gPiA+ID4gPiA+ID4gTU9EVUxFU19WQUREUik7Cj4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihNT0RV TEVTX0VORCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ID4gPiBNT0RVTEVTX0VORCk7Cj4gPiA+ID4g PiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArwqDCoMKg IGlmIChJU19FTkFCTEVEKENPTkZJR182NEJJVCkpCj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ID4gPiB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihLRVJORUxfTElOS19BRERSKT0w eCVseFxuIiwKPiA+ID4gPiA+ID4gPiA+IEtFUk5FTF9MSU5LX0FERFIpOwo+ID4gPiA+ID4gPiA+ IFdvbmRlcmluZyB3aHkgeW91IGRvbid0IHB1dCBLRVJORUxfTElOS19BRERSIGV4cG9ydGluZyBp bnRvIHRoZSBhYm92ZQo+ID4gPiA+ID4gPiA+IGlmZGVmZmVyeSBzY29wZSwgd2l0aCB0aGF0IHlv dSBjYW4gc2F2ZSBvbmUgbGluZSBvZgo+ID4gPiA+ID4gPiA+ICJJU19FTkFCTEVEKENPTkZJR182 NEJJVCkiLgo+ID4gPiA+ID4gPiBJIGZvbGxvd2VkIHRoZSBydWxlIGluIHByaW50X3ZtX2xheW91 dCgpIG9mCj4gPiA+ID4gPiA+IGFyY2gvcmlzY3YvbW0vaW5pdC5jLCB3aGljaCB1c2VkCj4gPiA+ ID4gPiA+IElTX0VOQUJMRUQgd2hlbiBwcmludCB0aGUgdmFsdWUgb2YgS0VSTkVMX0xJTktfQURE Ui4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiBJIHNlZS4gVGhlcmUncyBQQUdFX09GRlNFVCBpbiB0 aGUgbWlkZGxlLiBUaGFua3MuCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICDCoMKgwqDCoMKgwqDCoMKg IHByaW50X21sKCJsb3dtZW0iLCAodW5zaWduZWQgbG9uZylQQUdFX09GRlNFVCwKPiA+ID4gPiA+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodW5zaWduZWQgbG9uZyloaWdoX21l bW9yeSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gbm93LCBkbyB5b3UgdGhpbmsgaWYgaXQncyBu ZWNlc3NhcnkgdG8gaGF2ZSBhbm90aGVyCj4gPiA+ID4gPiBJU19FTkFCTEVEKENPTkZJR182NEJJ VCkgaW4gdGhlIGN1cnJlbnQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8oKT8KPiA+ID4gPiBG b3Igd2hpY2ggTUFDUk8/wqAgSSB0aGluayBjdXJyZW50IGNvZGUgZm9yIFBBR0VfT0ZGU0VUIGlz IE9LLgo+ID4gPiA+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9DDDAC38A2D for ; Wed, 26 Oct 2022 12:06:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-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=6m98W6tY2SMIZ7pt5YvVBALPTihlNaLzu/YeGZ3nrJA=; b=xyKAkoRG/wsxhg IqdfaHUbE3DGbYrFayWP3U2NieX1XTYlCcdy+YcKuxaKsSjPRy9diDYxiVnIdD/pzPWVmRU4i9lEa +JfWxCjdMD5AG8SV0x3bgPqVwE/O5V66oD+MDHUnagqMlnpODHMXpeI8rfX6UR9r37IjFFoGW8wq1 UgY6Wa9ifaj+hu+gQJIByM5DqOad+uKZX3uEOq4ldiNF7rG76axf7cBF/Hksz6PLksn44zkGL0vJW NUsVdUe/rRrF1ahRzjoHFAhIjAj5xLMTn7yfDCay8Fu7azSWfS8keGwiASfUV8kFYFDVaeoF2g2E6 ltdSlKpEdDyrgITMAjrQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfB1-0097um-FF; Wed, 26 Oct 2022 12:06:31 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfAu-0097tc-4F for kexec@lists.infradead.org; Wed, 26 Oct 2022 12:06:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666785981; 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=jx/F/uRgZqzTUF3j0yMZr1XDBFmLGP3lcblmwVG6BfE=; b=U47NQ9SJmhrhSnhNe4bALbVj12f0knBFNXCKoqxDifWUtEjggLhbAH20MLdTLgQpxk/Ds8 mEguPNkJEA+zn4BroQ1M2sm6jodg4S2AReHKiTSZeIULpwkswDQJ6HZX+BMnQh241ZWnR5 DYsJDpd0IYDYOm2eAnXjqaPConveTdw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-448-p0dk6y4kO7GzzFm0qTXzgg-1; Wed, 26 Oct 2022 08:06:19 -0400 X-MC-Unique: p0dk6y4kO7GzzFm0qTXzgg-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4C985811E81; Wed, 26 Oct 2022 12:05:49 +0000 (UTC) Received: from localhost (ovpn-12-35.pek2.redhat.com [10.72.12.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 21236477F55; Wed, 26 Oct 2022 12:05:46 +0000 (UTC) Date: Wed, 26 Oct 2022 20:05:41 +0800 From: Baoquan He To: Xianting Tian Cc: Conor Dooley , Palmer Dabbelt , paul.walmsley@sifive.com, aou@eecs.berkeley.edu, anup@brainfault.org, heiko@sntech.de, guoren@kernel.org, mick@ics.forth.gr, alexandre.ghiti@canonical.com, vgoyal@redhat.com, dyoung@redhat.com, corbet@lwn.net, bagasdotme@gmail.com, k-hagio-ab@nec.com, lijiang@redhat.com, kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, crash-utility@redhat.com, heinrich.schuchardt@canonical.com, hschauhan@nulltrace.org, yixun.lan@gmail.com Subject: Re: [PATCH V4 1/2] RISC-V: Add arch_crash_save_vmcoreinfo support Message-ID: References: <20221019103623.7008-1-xianting.tian@linux.alibaba.com> <20221019103623.7008-2-xianting.tian@linux.alibaba.com> <30621b3b-47ba-d612-cfb0-583d779691a3@linux.alibaba.com> <6af05838-fa58-8197-f3ce-ca95457077a7@linux.alibaba.com> <5df30e57-88ae-0a3b-2c1a-b962363d8670@linux.alibaba.com> <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <3c8beab1-3ca7-c3d7-6f31-c28a0ae008a3@linux.alibaba.com> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221026_050624_284068_4CEEA340 X-CRM114-Status: GOOD ( 42.69 ) X-BeenThere: kexec@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: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org SGkgWGlhbnRpbmcsIAoKT24gMTAvMjYvMjIgYXQgMDU6NDRwbSwgWGlhbnRpbmcgVGlhbiB3cm90 ZToKPiAKPiDlnKggMjAyMi8xMC8yNiDkuIvljYg1OjI1LCBDb25vciBEb29sZXkg5YaZ6YGTOgo+ ID4gT24gV2VkLCBPY3QgMjYsIDIwMjIgYXQgMDU6MDg6MTFQTSArMDgwMCwgWGlhbnRpbmcgVGlh biB3cm90ZToKPiA+ID4gSGkgUGFsbWVyLCBDb25vcgo+ID4gPiAKPiA+ID4gSXMgdGhpcyB2ZXJz aW9uIE9LIGZvciB5b3U/Cj4gPiBUaGUgd2VpcmQgaWZkZWYvSVNfRU5BQkxFRCB0aGluZyB3YXMg dGhlIG9ubHkgY29tbWVudCBJIGhhZC4gSXQncyBhIGJpdAo+ID4gb2RkICYgSSBub3RpY2UgQmFv cXVhbiBicm91Z2h0IGl0IHVwIHRvby4gSSBkaWRuJ3QgKGFuZCB3b24ndCkgZ2l2ZSB5b3UKPiA+ IGEgcmV2aWV3ZWQgYnkgb24gdGhlc2UgcGF0Y2hlcyBiZWNhdXNlIEkgZG9uJ3QgdW5kZXJzdGFu ZCB0aGUgYXJlYSB3ZWxsCj4gPiBlbm91Z2guIFRoZSBnZW5lcmFsIG5pdHBpY2tlcnkgc2VlbXMg dG8gYmUgc29ydGVkIHRob3VnaC4KPiAKPiBJIGNoZWNrZWQgdGhlIEtFUk5FTF9MSU5LX0FERFIg ZGVmaW5pdGlvbiBvZiByaXNjdizCoCBpdCBpcyB2YWxpZCBmb3IKPiBDT05GSUdfNjRCSVQgYW5k ICFDT05GSUdfNjRCSVQuCgpUaGlzIHNlcmllcyBsb29rcyBnb29kIHRvIG1lLiBNeSBvbmx5IG1p bm9yIGNvbmNlcm4gaXMgaWYgd2UgY2FuIG1ha2UKdGhlIGFyY2hfY3Jhc2hfc2F2ZV92bWNvcmVp bmZvKCkgYXMgYmVsb3cuIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgd2UKaGF2ZSB0byBoYXZlIHRo ZSBDT05GSUdfNjRCSVQgaWZkZWZmZXJ5IGFuZCB0aGUgSVNfRU5BQkxFRChDT05GSUdfNjRCSVQp CmJldHdlZW4gdHdvIGFkamFjZW50IGNvZGUgYmxvY2tzLiBOb3Qgc3VyZSBpZiB3ZSBhcmUgc2F5 aW5nIHRoZSBzYW1lCnRoaW5nLgoKK3ZvaWQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8odm9p ZCkKK3sKKyAgICAgICBWTUNPUkVJTkZPX05VTUJFUihWQV9CSVRTKTsKKyAgICAgICBWTUNPUkVJ TkZPX05VTUJFUihwaHlzX3JhbV9iYXNlKTsKKworICAgICAgIHZtY29yZWluZm9fYXBwZW5kX3N0 cigiTlVNQkVSKFBBR0VfT0ZGU0VUKT0weCVseFxuIiwgUEFHRV9PRkZTRVQpOworICAgICAgIHZt Y29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNQUxMT0NfU1RBUlQpPTB4JWx4XG4iLCBWTUFM TE9DX1NUQVJUKTsKKyAgICAgICB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihWTUFMTE9D X0VORCk9MHglbHhcbiIsIFZNQUxMT0NfRU5EKTsKKyAgICAgICB2bWNvcmVpbmZvX2FwcGVuZF9z dHIoIk5VTUJFUihWTUVNTUFQX1NUQVJUKT0weCVseFxuIiwgVk1FTU1BUF9TVEFSVCk7CisgICAg ICAgdm1jb3JlaW5mb19hcHBlbmRfc3RyKCJOVU1CRVIoVk1FTU1BUF9FTkQpPTB4JWx4XG4iLCBW TUVNTUFQX0VORCk7CisjaWZkZWYgQ09ORklHXzY0QklUCisJdm1jb3JlaW5mb19hcHBlbmRfc3Ry KCJOVU1CRVIoTU9EVUxFU19WQUREUik9MHglbHhcbiIsIE1PRFVMRVNfVkFERFIpOworICAgICAg IHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKE1PRFVMRVNfRU5EKT0weCVseFxuIiwgTU9E VUxFU19FTkQpOworICAgICAgIHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKEtFUk5FTF9M SU5LX0FERFIpPTB4JWx4XG4iLCBLRVJORUxfTElOS19BRERSKTsKKyNlbmRpZgorfQoKPiAKPiBN YXliZSB3ZSBjYW4gcmVtb3ZlIElTX0VOQUJMRUQoQ09ORklHXzY0QklUKQo+IAo+IGFyY2gvcmlz Y3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gI2RlZmluZSBBRERSRVNTX1NQQUNFX0VORMKgwqDC oMKgwqDCoCAoVUwoLTEpKQo+ICNpZmRlZiBDT05GSUdfNjRCSVQKPiAvKiBMZWF2ZSAyR0IgZm9y IGtlcm5lbCBhbmQgQlBGIGF0IHRoZSBlbmQgb2YgdGhlIGFkZHJlc3Mgc3BhY2UgKi8KPiAjZGVm aW5lIEtFUk5FTF9MSU5LX0FERFLCoMKgwqDCoMKgwqDCoCAoQUREUkVTU19TUEFDRV9FTkQgLSBT Wl8yRyArIDEpCj4gI2Vsc2UKPiAjZGVmaW5lIEtFUk5FTF9MSU5LX0FERFLCoMKgwqDCoMKgwqDC oCBQQUdFX09GRlNFVAo+ICNlbmRpZgo+IAo+IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5o Cj4gI2lmZGVmIENPTkZJR182NEJJVAo+ICNpZmRlZiBDT05GSUdfTU1VCj4gI2RlZmluZSBQQUdF X09GRlNFVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrZXJuZWxfbWFwLnBhZ2Vfb2Zmc2V0Cj4g I2Vsc2UKPiAjZGVmaW5lIFBBR0VfT0ZGU0VUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9BQyhD T05GSUdfUEFHRV9PRkZTRVQsIFVMKQo+ICNlbmRpZgo+IC8qCj4gwqAqIEJ5IGRlZmF1bHQsIENP TkZJR19QQUdFX09GRlNFVCB2YWx1ZSBjb3JyZXNwb25kcyB0byBTVjQ4IGFkZHJlc3Mgc3BhY2Ug c28KPiDCoCogZGVmaW5lIHRoZSBQQUdFX09GRlNFVCB2YWx1ZSBmb3IgU1YzOS4KPiDCoCovCj4g I2RlZmluZSBQQUdFX09GRlNFVF9MNMKgwqDCoMKgwqDCoMKgwqDCoCBfQUMoMHhmZmZmYWY4MDAw MDAwMDAwLCBVTCkKPiAjZGVmaW5lIFBBR0VfT0ZGU0VUX0wzwqDCoMKgwqDCoMKgwqDCoMKgIF9B QygweGZmZmZmZmQ4MDAwMDAwMDAsIFVMKQo+ICNlbHNlCj4gI2RlZmluZSBQQUdFX09GRlNFVMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfQUMoQ09ORklHX1BBR0VfT0ZGU0VULCBVTCkKPiAjZW5k aWYgLyogQ09ORklHXzY0QklUICovCj4gCj4gPiAKPiA+IFRoYW5rcywKPiA+IENvbm9yLgo+ID4g Cj4gPiA+IOWcqCAyMDIyLzEwLzIwIOS4i+WNiDEyOjQwLCBYaWFudGluZyBUaWFuIOWGmemBkzoK PiA+ID4gPiDlnKggMjAyMi8xMC8yMCDkuIrljYgxMTowNSwgQmFvcXVhbiBIZSDlhpnpgZM6Cj4g PiA+ID4gPiBPbiAxMC8yMC8yMiBhdCAxMDoxN2FtLCBYaWFudGluZyBUaWFuIHdyb3RlOgo+ID4g PiA+ID4gPiDlnKggMjAyMi8xMC8yMCDkuIrljYgxMDowOCwgQmFvcXVhbiBIZSDlhpnpgZM6Cj4g PiA+ID4gPiA+ID4gT24gMTAvMTkvMjIgYXQgMDY6MzZwbSwgWGlhbnRpbmcgVGlhbiB3cm90ZToK PiA+ID4gPiA+ID4gPiA+IEFkZCBhcmNoX2NyYXNoX3NhdmVfdm1jb3JlaW5mbygpLCB3aGljaCBl eHBvcnRzIFZNCj4gPiA+ID4gPiA+ID4gPiBsYXlvdXQoTU9EVUxFUywgVk1BTExPQywKPiA+ID4g PiA+ID4gPiA+IFZNRU1NQVAgcmFuZ2VzIGFuZCBLRVJORUxfTElOS19BRERSKSwgdmEgYml0cyBh bmQgcmFtCj4gPiA+ID4gPiA+ID4gPiBiYXNlIGZvciB2bWNvcmUuCj4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+IERlZmF1bHQgcGFnZXRhYmxlIGxldmVscyBhbmQgUEFHRV9PRkZTRVQg YXJlbid0IHNhbWUgZm9yCj4gPiA+ID4gPiA+ID4gPiBkaWZmZXJlbnQga2VybmVsCj4gPiA+ID4g PiA+ID4gPiB2ZXJzaW9uIGFzIGJlbG93LiBGb3IgcGFnZXRhYmxlIGxldmVscywgaXQgc2V0cyBz djU3IGJ5Cj4gPiA+ID4gPiA+ID4gPiBkZWZhdWx0IGFuZCBmYWxscwo+ID4gPiA+ID4gPiA+ID4g YmFjayB0byBzZXR0aW5nIHN2NDggYXQgYm9vdCB0aW1lIGlmIHN2NTcgaXMgbm90Cj4gPiA+ID4g PiA+ID4gPiBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiBGb3IgcmFtIGJhc2UsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDB4ODAyMDAwMDAg Zm9yIHFlbXUKPiA+ID4gPiA+ID4gPiA+IHJpc2N2NjQgZW52IGFuZCwKPiA+ID4gPiA+ID4gPiA+ IGZvciBleGFtcGxlLCBpcyAweDIwMDAwMCBvbiB0aGUgWHVhblRpZSA5MTAgQ1BVLgo+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCAqIExpbnV4IEtlcm5lbCA1LjE4IH4KPiA+ ID4gPiA+ID4gPiA+ICDCoMKgICrCoMKgwqDCoMKgIFBHVEFCTEVfTEVWRUxTID0gNQo+ID4gPiA+ ID4gPiA+ID4gIMKgwqAgKsKgwqDCoMKgwqAgUEFHRV9PRkZTRVQgPSAweGZmNjAwMDAwMDAwMDAw MDAKPiA+ID4gPiA+ID4gPiA+ICDCoMKgICogTGludXggS2VybmVsIDUuMTcgfgo+ID4gPiA+ID4g PiA+ID4gIMKgwqAgKsKgwqDCoMKgwqAgUEdUQUJMRV9MRVZFTFMgPSA0Cj4gPiA+ID4gPiA+ID4g PiAgwqDCoCAqwqDCoMKgwqDCoCBQQUdFX09GRlNFVCA9IDB4ZmZmZmFmODAwMDAwMDAwMAo+ID4g PiA+ID4gPiA+ID4gIMKgwqAgKiBMaW51eCBLZXJuZWwgNC4xOSB+Cj4gPiA+ID4gPiA+ID4gPiAg wqDCoCAqwqDCoMKgwqDCoCBQR1RBQkxFX0xFVkVMUyA9IDMKPiA+ID4gPiA+ID4gPiA+ICDCoMKg ICrCoMKgwqDCoMKgIFBBR0VfT0ZGU0VUID0gMHhmZmZmZmZlMDAwMDAwMDAwCj4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IFNpbmNlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGNoYW5nZSBm cm9tIHRpbWUgdG8gdGltZSBhbmQKPiA+ID4gPiA+ID4gPiA+IHZlcnNpb24gdG8gdmVyc2lvbiwK PiA+ID4gPiA+ID4gPiA+IGl0IGlzIHByZWZlcmFibGUgdG8gZXhwb3J0IHRoZW0gdmlhIHZtY29y ZWluZm8gdGhhbiB0bwo+ID4gPiA+ID4gPiA+ID4gY2hhbmdlIHRoZSBjcmFzaCdzCj4gPiA+ID4g PiA+ID4gPiBjb2RlIGZyZXF1ZW50bHksIGl0IGNhbiBzaW1wbGlmeSB0aGUgZGV2ZWxvcG1lbnQg b2YgY3Jhc2ggdG9vbC4KPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9m Zi1ieTogWGlhbnRpbmcgVGlhbiA8eGlhbnRpbmcudGlhbkBsaW51eC5hbGliYWJhLmNvbT4KPiA+ ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gIMKgwqAgYXJjaC9yaXNjdi9rZXJuZWwv TWFrZWZpbGXCoMKgwqDCoCB8wqAgMSArCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBhcmNoL3Jpc2N2 L2tlcm5lbC9jcmFzaF9jb3JlLmMgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ ID4gPiA+ID4gIMKgwqAgMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspCj4gPiA+ID4g PiA+ID4gPiAgwqDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNjdi9rZXJuZWwvY3Jhc2hf Y29yZS5jCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCj4gPiA+ ID4gPiA+ID4gPiBpbmRleCBkYjZlNGIxMjk0YmEuLjRjZjMwM2E3NzlhYiAxMDA2NDQKPiA+ID4g PiA+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCj4gPiA+ID4gPiA+ID4g PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9NYWtlZmlsZQo+ID4gPiA+ID4gPiA+ID4gQEAgLTgx LDYgKzgxLDcgQEAgb2JqLSQoQ09ORklHX0tHREIpwqDCoMKgwqDCoMKgwqAgKz0ga2dkYi5vCj4g PiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfS0VYRUNfQ09SRSnCoMKgwqAgKz0ga2V4 ZWNfcmVsb2NhdGUubwo+ID4gPiA+ID4gPiA+ID4gY3Jhc2hfc2F2ZV9yZWdzLm8gbWFjaGluZV9r ZXhlYy5vCj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfS0VYRUNfRklMRSnCoMKg wqAgKz0gZWxmX2tleGVjLm8gbWFjaGluZV9rZXhlY19maWxlLm8KPiA+ID4gPiA+ID4gPiA+ICDC oMKgIG9iai0kKENPTkZJR19DUkFTSF9EVU1QKcKgwqDCoCArPSBjcmFzaF9kdW1wLm8KPiA+ID4g PiA+ID4gPiA+ICtvYmotJChDT05GSUdfQ1JBU0hfQ09SRSnCoMKgwqAgKz0gY3Jhc2hfY29yZS5v Cj4gPiA+ID4gPiA+ID4gPiAgwqDCoCBvYmotJChDT05GSUdfSlVNUF9MQUJFTCnCoMKgwqAgKz0g anVtcF9sYWJlbC5vCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJu ZWwvY3Jhc2hfY29yZS5jCj4gPiA+ID4gPiA+ID4gPiBiL2FyY2gvcmlzY3Yva2VybmVsL2NyYXNo X2NvcmUuYwo+ID4gPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiA+ID4g PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2U4ODlkMGVkN2JkCj4gPiA+ID4gPiA+ID4gPiAtLS0g L2Rldi9udWxsCj4gPiA+ID4gPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcmFzaF9j b3JlLmMKPiA+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjMgQEAKPiA+ID4gPiA+ID4gPiA+ICsv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cj4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2NyYXNoX2NvcmUuaD4KPiA+ID4gPiA+ ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgo+ID4gPiA+ID4gPiA+ID4gKwo+ID4g PiA+ID4gPiA+ID4gK3ZvaWQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8odm9pZCkKPiA+ID4g PiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gPiArwqDCoMKgIFZNQ09SRUlORk9fTlVNQkVSKFZB X0JJVFMpOwo+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoCBWTUNPUkVJTkZPX05VTUJFUihwaHlzX3Jh bV9iYXNlKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+IHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFBBR0VfT0ZGU0VUKT0weCVseFxuIiwK PiA+ID4gPiA+ID4gPiA+IFBBR0VfT0ZGU0VUKTsKPiA+ID4gPiA+ID4gPiA+ICsgdm1jb3JlaW5m b19hcHBlbmRfc3RyKCJOVU1CRVIoVk1BTExPQ19TVEFSVCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ ID4gPiBWTUFMTE9DX1NUQVJUKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+IHZt Y29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNQUxMT0NfRU5EKT0weCVseFxuIiwKPiA+ID4g PiA+ID4gPiA+IFZNQUxMT0NfRU5EKTsKPiA+ID4gPiA+ID4gPiA+ICsgdm1jb3JlaW5mb19hcHBl bmRfc3RyKCJOVU1CRVIoVk1FTU1BUF9TVEFSVCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ID4gPiBW TUVNTUFQX1NUQVJUKTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+IHZtY29yZWlu Zm9fYXBwZW5kX3N0cigiTlVNQkVSKFZNRU1NQVBfRU5EKT0weCVseFxuIiwKPiA+ID4gPiA+ID4g PiA+IFZNRU1NQVBfRU5EKTsKPiA+ID4gPiA+ID4gPiA+ICsjaWZkZWYgQ09ORklHXzY0QklUCj4g PiA+ID4gPiA+ID4gPiArIHZtY29yZWluZm9fYXBwZW5kX3N0cigiTlVNQkVSKE1PRFVMRVNfVkFE RFIpPTB4JWx4XG4iLAo+ID4gPiA+ID4gPiA+ID4gTU9EVUxFU19WQUREUik7Cj4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihNT0RV TEVTX0VORCk9MHglbHhcbiIsCj4gPiA+ID4gPiA+ID4gPiBNT0RVTEVTX0VORCk7Cj4gPiA+ID4g PiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArwqDCoMKg IGlmIChJU19FTkFCTEVEKENPTkZJR182NEJJVCkpCj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ID4gPiB2bWNvcmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihLRVJORUxfTElOS19BRERSKT0w eCVseFxuIiwKPiA+ID4gPiA+ID4gPiA+IEtFUk5FTF9MSU5LX0FERFIpOwo+ID4gPiA+ID4gPiA+ IFdvbmRlcmluZyB3aHkgeW91IGRvbid0IHB1dCBLRVJORUxfTElOS19BRERSIGV4cG9ydGluZyBp bnRvIHRoZSBhYm92ZQo+ID4gPiA+ID4gPiA+IGlmZGVmZmVyeSBzY29wZSwgd2l0aCB0aGF0IHlv dSBjYW4gc2F2ZSBvbmUgbGluZSBvZgo+ID4gPiA+ID4gPiA+ICJJU19FTkFCTEVEKENPTkZJR182 NEJJVCkiLgo+ID4gPiA+ID4gPiBJIGZvbGxvd2VkIHRoZSBydWxlIGluIHByaW50X3ZtX2xheW91 dCgpIG9mCj4gPiA+ID4gPiA+IGFyY2gvcmlzY3YvbW0vaW5pdC5jLCB3aGljaCB1c2VkCj4gPiA+ ID4gPiA+IElTX0VOQUJMRUQgd2hlbiBwcmludCB0aGUgdmFsdWUgb2YgS0VSTkVMX0xJTktfQURE Ui4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiBJIHNlZS4gVGhlcmUncyBQQUdFX09GRlNFVCBpbiB0 aGUgbWlkZGxlLiBUaGFua3MuCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICDCoMKgwqDCoMKgwqDCoMKg IHByaW50X21sKCJsb3dtZW0iLCAodW5zaWduZWQgbG9uZylQQUdFX09GRlNFVCwKPiA+ID4gPiA+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodW5zaWduZWQgbG9uZyloaWdoX21l bW9yeSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gbm93LCBkbyB5b3UgdGhpbmsgaWYgaXQncyBu ZWNlc3NhcnkgdG8gaGF2ZSBhbm90aGVyCj4gPiA+ID4gPiBJU19FTkFCTEVEKENPTkZJR182NEJJ VCkgaW4gdGhlIGN1cnJlbnQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8oKT8KPiA+ID4gPiBG b3Igd2hpY2ggTUFDUk8/wqAgSSB0aGluayBjdXJyZW50IGNvZGUgZm9yIFBBR0VfT0ZGU0VUIGlz IE9LLgo+ID4gPiA+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK