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=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 2CDDFC43140 for ; Thu, 21 Jun 2018 03:19:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D834420837 for ; Thu, 21 Jun 2018 03:19:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D834420837 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-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754449AbeFUDTI (ORCPT ); Wed, 20 Jun 2018 23:19:08 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:44034 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754104AbeFUDTG (ORCPT ); Wed, 20 Jun 2018 23:19:06 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67C9581663D5; Thu, 21 Jun 2018 03:19:06 +0000 (UTC) Received: from localhost.localdomain (ovpn-12-127.pek2.redhat.com [10.72.12.127]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8CC522156880; Thu, 21 Jun 2018 03:19:02 +0000 (UTC) Subject: Re: [PATCH 0/4 V3] Support kdump for AMD secure memory encryption(SME) To: Baoquan He Cc: linux-kernel@vger.kernel.org, thomas.lendacky@amd.com, iommu@lists.linux-foundation.org, dyoung@redhat.com, kexec@lists.infradead.org, akpm@linux-foundation.org References: <20180616082714.32035-1-lijiang@redhat.com> <20180621012116.GF29979@MiWiFi-R3L-srv> From: lijiang Message-ID: Date: Thu, 21 Jun 2018 11:18:58 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20180621012116.GF29979@MiWiFi-R3L-srv> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Thu, 21 Jun 2018 03:19:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Thu, 21 Jun 2018 03:19:06 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lijiang@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2018年06月21日 09:21, Baoquan He 写道: > On 06/16/18 at 04:27pm, Lianbo Jiang wrote: >> It is convenient to remap the old memory encrypted to the second kernel by >> calling ioremap_encrypted(). >> >> When sme enabled on AMD server, we also need to support kdump. Because >> the memory is encrypted in the first kernel, we will remap the old memory >> encrypted to the second kernel(crash kernel), and sme is also enabled in >> the second kernel, otherwise the old memory encrypted can not be decrypted. >> Because simply changing the value of a C-bit on a page will not >> automatically encrypt the existing contents of a page, and any data in the >> page prior to the C-bit modification will become unintelligible. A page of >> memory that is marked encrypted will be automatically decrypted when read >> from DRAM and will be automatically encrypted when written to DRAM. >> >> For the kdump, it is necessary to distinguish whether the memory is >> encrypted. Furthermore, we should also know which part of the memory is >> encrypted or decrypted. We will appropriately remap the memory according >> to the specific situation in order to tell cpu how to deal with the >> data(encrypted or decrypted). For example, when sme enabled, if the old >> memory is encrypted, we will remap the old memory in encrypted way, which >> will automatically decrypt the old memory encrypted when we read those data >> from the remapping address. >> >> ---------------------------------------------- >> | first-kernel | second-kernel | kdump support | >> | (mem_encrypt=on|off) | (yes|no) | >> |--------------+---------------+---------------| >> | on | on | yes | >> | off | off | yes | >> | on | off | no | > > >> | off | on | no | > > It's not clear to me here. If 1st kernel sme is off, in 2nd kernel, when > you remap the old memory with non-sme mode, why did it fail? > Thank you, Baoquan. For kdump, there are two cases that doesn't need to support: 1. SME on(first kernel), but SME off(second kernel). Because the old memory is encrypted, we can't decrypt the old memory if SME is off in the second kernel(in kdump mode). 2. SME off(first kernel), but SME on(second kernel) Maybe this situation doesn't have significance in actual deployment, furthermore, it will also increase the complexity of the code. It's just for testing, maybe it is unnecessary to support it, because the old memory is unencrypted. Thanks. Lianbo > And please run scripts/get_maintainer.pl and add maintainers of > component which is affected in patch to CC list. Great! I forgot CC maintainers, thanks for your reminder. Lianbo > >> |______________|_______________|_______________| >> >> This patch is only for SME kdump, it is not support SEV kdump. >> >> Test tools: >> makedumpfile[v1.6.3]: https://github.com/LianboJ/makedumpfile >> commit e1de103eca8f (A draft for kdump vmcore about AMD SME) >> Author: Lianbo Jiang >> Date: Mon May 14 17:02:40 2018 +0800 >> Note: This patch can only dump vmcore in the case of SME enabled. >> >> crash-7.2.1: https://github.com/crash-utility/crash.git >> commit 1e1bd9c4c1be (Fix for the "bpf" command display on Linux 4.17-rc1) >> Author: Dave Anderson >> Date: Fri May 11 15:54:32 2018 -0400 >> >> Test environment: >> HP ProLiant DL385Gen10 AMD EPYC 7251 >> 8-Core Processor >> 32768 MB memory >> 600 GB disk space >> >> Linux 4.17-rc7: >> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> commit b04e217704b7 ("Linux 4.17-rc7") >> Author: Linus Torvalds >> Date: Sun May 27 13:01:47 2018 -0700 >> >> Reference: >> AMD64 Architecture Programmer's Manual >> https://support.amd.com/TechDocs/24593.pdf >> >> Some changes: >> 1. remove the sme_active() check in __ioremap_caller(). >> 2. remove the '#ifdef' stuff throughout this patch. >> 3. put some logic into the early_memremap_pgprot_adjust() and clean the >> previous unnecessary changes, for example: arch/x86/include/asm/dmi.h, >> arch/x86/kernel/acpi/boot.c, drivers/acpi/tables.c. >> 4. add a new file and modify Makefile. >> 5. clean compile warning in copy_device_table() and some compile error. >> 6. split the original patch into four patches, it will be better for >> review. >> >> Some known issues: >> 1. about SME >> Upstream kernel doesn't work when we use kexec in the follow command. The >> system will hang. >> (This issue doesn't matter with the kdump patch.) >> >> Reproduce steps: >> # kexec -l /boot/vmlinuz-4.17.0-rc7+ --initrd=/boot/initramfs-4.17.0-rc7+.img --command-line="root=/dev/mapper/rhel_hp--dl385g10--03-root ro mem_encrypt=on rd.lvm.lv=rhel_hp-dl385g10-03/root rd.lvm.lv=rhel_hp-dl385g10-03/swap console=ttyS0,115200n81 LANG=en_US.UTF-8 earlyprintk=serial debug nokaslr" >> # kexec -e (or reboot) >> >> The system will hang: >> [ 1248.932239] kexec_core: Starting new kernel >> early console in extract_kernel >> input_data: 0x000000087e91c3b4 >> input_len: 0x000000000067fcbd >> output: 0x000000087d400000 >> output_len: 0x0000000001b6fa90 >> kernel_total_size: 0x0000000001a9d000 >> trampoline_32bit: 0x0000000000099000 >> >> Decompressing Linux... >> Parsing ELF... [-here the system will hang] >> >> 2. about SEV >> Upstream kernel(Host OS) doesn't work in host side, some drivers about >> SEV always go wrong in host side. We can't boot SEV Guest OS to test >> kdump patch. Maybe it is more reasonable to improve SEV in another >> patch. When some drivers can work in host side and it can also boot >> Virtual Machine(SEV Guest OS), it will be suitable to fix SEV for kdump. >> >> [ 369.426131] INFO: task systemd-udevd:865 blocked for more than 120 seconds. >> [ 369.433177] Not tainted 4.17.0-rc5+ #60 >> [ 369.437585] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> [ 369.445783] systemd-udevd D 0 865 813 0x80000004 >> [ 369.451323] Call Trace: >> [ 369.453815] ? __schedule+0x290/0x870 >> [ 369.457523] schedule+0x32/0x80 >> [ 369.460714] __sev_do_cmd_locked+0x1f6/0x2a0 [ccp] >> [ 369.465556] ? cleanup_uevent_env+0x10/0x10 >> [ 369.470084] ? remove_wait_queue+0x60/0x60 >> [ 369.474219] ? 0xffffffffc0247000 >> [ 369.477572] __sev_platform_init_locked+0x2b/0x70 [ccp] >> [ 369.482843] sev_platform_init+0x1d/0x30 [ccp] >> [ 369.487333] psp_pci_init+0x40/0xe0 [ccp] >> [ 369.491380] ? 0xffffffffc0247000 >> [ 369.494936] sp_mod_init+0x18/0x1000 [ccp] >> [ 369.499071] do_one_initcall+0x4e/0x1d4 >> [ 369.502944] ? _cond_resched+0x15/0x30 >> [ 369.506728] ? kmem_cache_alloc_trace+0xae/0x1d0 >> [ 369.511386] ? do_init_module+0x22/0x220 >> [ 369.515345] do_init_module+0x5a/0x220 >> [ 369.519444] load_module+0x21cb/0x2a50 >> [ 369.523227] ? m_show+0x1c0/0x1c0 >> [ 369.526571] ? security_capable+0x3f/0x60 >> [ 369.530611] __do_sys_finit_module+0x94/0xe0 >> [ 369.534915] do_syscall_64+0x5b/0x180 >> [ 369.538607] entry_SYSCALL_64_after_hwframe+0x44/0xa9 >> [ 369.543698] RIP: 0033:0x7f708e6311b9 >> [ 369.547536] RSP: 002b:00007ffff9d32aa8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 >> [ 369.555162] RAX: ffffffffffffffda RBX: 000055602a04c2d0 RCX: 00007f708e6311b9 >> [ 369.562346] RDX: 0000000000000000 RSI: 00007f708ef52039 RDI: 0000000000000008 >> [ 369.569801] RBP: 00007f708ef52039 R08: 0000000000000000 R09: 000055602a048b20 >> [ 369.576988] R10: 0000000000000008 R11: 0000000000000246 R12: 0000000000000000 >> [ 369.584177] R13: 000055602a075260 R14: 0000000000020000 R15: 0000000000000000 >> >> Lianbo Jiang (4): >> Add a function(ioremap_encrypted) for kdump when AMD sme enabled >> Allocate pages for kdump without encryption when SME is enabled >> Remap the device table of IOMMU in encrypted manner for kdump >> Help to dump the old memory encrypted into vmcore file >> >> arch/x86/include/asm/io.h | 3 ++ >> arch/x86/kernel/Makefile | 1 + >> arch/x86/kernel/crash_dump_encrypt.c | 53 ++++++++++++++++++++++++++++++++++++ >> arch/x86/mm/ioremap.c | 28 +++++++++++++------ >> drivers/iommu/amd_iommu_init.c | 15 +++++++++- >> fs/proc/vmcore.c | 20 ++++++++++---- >> include/linux/crash_dump.h | 11 ++++++++ >> kernel/kexec_core.c | 12 ++++++++ >> 8 files changed, 128 insertions(+), 15 deletions(-) >> create mode 100644 arch/x86/kernel/crash_dump_encrypt.c >> >> -- >> 2.9.5 >> >> >> _______________________________________________ >> kexec mailing list >> kexec@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/kexec From mboxrd@z Thu Jan 1 00:00:00 1970 From: lijiang Subject: Re: [PATCH 0/4 V3] Support kdump for AMD secure memory encryption(SME) Date: Thu, 21 Jun 2018 11:18:58 +0800 Message-ID: References: <20180616082714.32035-1-lijiang@redhat.com> <20180621012116.GF29979@MiWiFi-R3L-srv> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180621012116.GF29979@MiWiFi-R3L-srv> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Baoquan He Cc: thomas.lendacky-5C7GfCeVMHo@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org List-Id: iommu@lists.linux-foundation.org 5ZyoIDIwMTjlubQwNuaciDIx5pelIDA5OjIxLCBCYW9xdWFuIEhlIOWGmemBkzoKPiBPbiAwNi8x Ni8xOCBhdCAwNDoyN3BtLCBMaWFuYm8gSmlhbmcgd3JvdGU6Cj4+IEl0IGlzIGNvbnZlbmllbnQg dG8gcmVtYXAgdGhlIG9sZCBtZW1vcnkgZW5jcnlwdGVkIHRvIHRoZSBzZWNvbmQga2VybmVsIGJ5 Cj4+IGNhbGxpbmcgaW9yZW1hcF9lbmNyeXB0ZWQoKS4KPj4KPj4gV2hlbiBzbWUgZW5hYmxlZCBv biBBTUQgc2VydmVyLCB3ZSBhbHNvIG5lZWQgdG8gc3VwcG9ydCBrZHVtcC4gQmVjYXVzZQo+PiB0 aGUgbWVtb3J5IGlzIGVuY3J5cHRlZCBpbiB0aGUgZmlyc3Qga2VybmVsLCB3ZSB3aWxsIHJlbWFw IHRoZSBvbGQgbWVtb3J5Cj4+IGVuY3J5cHRlZCB0byB0aGUgc2Vjb25kIGtlcm5lbChjcmFzaCBr ZXJuZWwpLCBhbmQgc21lIGlzIGFsc28gZW5hYmxlZCBpbgo+PiB0aGUgc2Vjb25kIGtlcm5lbCwg b3RoZXJ3aXNlIHRoZSBvbGQgbWVtb3J5IGVuY3J5cHRlZCBjYW4gbm90IGJlIGRlY3J5cHRlZC4K Pj4gQmVjYXVzZSBzaW1wbHkgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgQy1iaXQgb24gYSBwYWdl IHdpbGwgbm90Cj4+IGF1dG9tYXRpY2FsbHkgZW5jcnlwdCB0aGUgZXhpc3RpbmcgY29udGVudHMg b2YgYSBwYWdlLCBhbmQgYW55IGRhdGEgaW4gdGhlCj4+IHBhZ2UgcHJpb3IgdG8gdGhlIEMtYml0 IG1vZGlmaWNhdGlvbiB3aWxsIGJlY29tZSB1bmludGVsbGlnaWJsZS4gQSBwYWdlIG9mCj4+IG1l bW9yeSB0aGF0IGlzIG1hcmtlZCBlbmNyeXB0ZWQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGRlY3J5 cHRlZCB3aGVuIHJlYWQKPj4gZnJvbSBEUkFNIGFuZCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZW5j cnlwdGVkIHdoZW4gd3JpdHRlbiB0byBEUkFNLgo+Pgo+PiBGb3IgdGhlIGtkdW1wLCBpdCBpcyBu ZWNlc3NhcnkgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgbWVtb3J5IGlzCj4+IGVuY3J5cHRl ZC4gRnVydGhlcm1vcmUsIHdlIHNob3VsZCBhbHNvIGtub3cgd2hpY2ggcGFydCBvZiB0aGUgbWVt b3J5IGlzCj4+IGVuY3J5cHRlZCBvciBkZWNyeXB0ZWQuIFdlIHdpbGwgYXBwcm9wcmlhdGVseSBy ZW1hcCB0aGUgbWVtb3J5IGFjY29yZGluZwo+PiB0byB0aGUgc3BlY2lmaWMgc2l0dWF0aW9uIGlu IG9yZGVyIHRvIHRlbGwgY3B1IGhvdyB0byBkZWFsIHdpdGggdGhlCj4+IGRhdGEoZW5jcnlwdGVk IG9yIGRlY3J5cHRlZCkuIEZvciBleGFtcGxlLCB3aGVuIHNtZSBlbmFibGVkLCBpZiB0aGUgb2xk Cj4+IG1lbW9yeSBpcyBlbmNyeXB0ZWQsIHdlIHdpbGwgcmVtYXAgdGhlIG9sZCBtZW1vcnkgaW4g ZW5jcnlwdGVkIHdheSwgd2hpY2gKPj4gd2lsbCBhdXRvbWF0aWNhbGx5IGRlY3J5cHQgdGhlIG9s ZCBtZW1vcnkgZW5jcnlwdGVkIHdoZW4gd2UgcmVhZCB0aG9zZSBkYXRhCj4+IGZyb20gdGhlIHJl bWFwcGluZyBhZGRyZXNzLgo+Pgo+PiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiB8IGZpcnN0LWtlcm5lbCB8IHNlY29uZC1rZXJuZWwgfCBrZHVtcCBz dXBwb3J0IHwKPj4gfCAgICAgIChtZW1fZW5jcnlwdD1vbnxvZmYpICAgIHwgICAoeWVzfG5vKSAg ICB8Cj4+IHwtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tfAo+ PiB8ICAgICBvbiAgICAgICB8ICAgICBvbiAgICAgICAgfCAgICAgeWVzICAgICAgIHwKPj4gfCAg ICAgb2ZmICAgICAgfCAgICAgb2ZmICAgICAgIHwgICAgIHllcyAgICAgICB8Cj4+IHwgICAgIG9u ICAgICAgIHwgICAgIG9mZiAgICAgICB8ICAgICBubyAgICAgICAgfAo+IAo+IAo+PiB8ICAgICBv ZmYgICAgICB8ICAgICBvbiAgICAgICAgfCAgICAgbm8gICAgICAgIHwKPiAKPiBJdCdzIG5vdCBj bGVhciB0byBtZSBoZXJlLiBJZiAxc3Qga2VybmVsIHNtZSBpcyBvZmYsIGluIDJuZCBrZXJuZWws IHdoZW4KPiB5b3UgcmVtYXAgdGhlIG9sZCBtZW1vcnkgd2l0aCBub24tc21lIG1vZGUsIHdoeSBk aWQgaXQgZmFpbD8KPiAKVGhhbmsgeW91LCBCYW9xdWFuLgpGb3Iga2R1bXAsIHRoZXJlIGFyZSB0 d28gY2FzZXMgdGhhdCBkb2Vzbid0IG5lZWQgdG8gc3VwcG9ydDoKCjEuIFNNRSBvbihmaXJzdCBr ZXJuZWwpLCBidXQgU01FIG9mZihzZWNvbmQga2VybmVsKS4KQmVjYXVzZSB0aGUgb2xkIG1lbW9y eSBpcyBlbmNyeXB0ZWQsIHdlIGNhbid0IGRlY3J5cHQgdGhlIG9sZCBtZW1vcnkgaWYgU01FIGlz IG9mZgppbiB0aGUgc2Vjb25kIGtlcm5lbChpbiBrZHVtcCBtb2RlKS4KCjIuIFNNRSBvZmYoZmly c3Qga2VybmVsKSwgYnV0IFNNRSBvbihzZWNvbmQga2VybmVsKQpNYXliZSB0aGlzIHNpdHVhdGlv biBkb2Vzbid0IGhhdmUgc2lnbmlmaWNhbmNlIGluIGFjdHVhbCBkZXBsb3ltZW50LCBmdXJ0aGVy bW9yZSwgaXQKd2lsbCBhbHNvIGluY3JlYXNlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBjb2RlLiBJ dCdzIGp1c3QgZm9yIHRlc3RpbmcsIG1heWJlIGl0IGlzCnVubmVjZXNzYXJ5IHRvIHN1cHBvcnQg aXQsIGJlY2F1c2UgdGhlIG9sZCBtZW1vcnkgaXMgdW5lbmNyeXB0ZWQuCgpUaGFua3MuCkxpYW5i bwo+IEFuZCBwbGVhc2UgcnVuIHNjcmlwdHMvZ2V0X21haW50YWluZXIucGwgYW5kIGFkZCBtYWlu dGFpbmVycyBvZgo+IGNvbXBvbmVudCB3aGljaCBpcyBhZmZlY3RlZCBpbiBwYXRjaCB0byBDQyBs aXN0LgpHcmVhdCEgSSBmb3Jnb3QgQ0MgbWFpbnRhaW5lcnMsIHRoYW5rcyBmb3IgeW91ciByZW1p bmRlci4KCkxpYW5ibwo+IAo+PiB8X19fX19fX19fX19fX198X19fX19fX19fX19fX19ffF9fX19f X19fX19fX19fX3wKPj4KPj4gVGhpcyBwYXRjaCBpcyBvbmx5IGZvciBTTUUga2R1bXAsIGl0IGlz IG5vdCBzdXBwb3J0IFNFViBrZHVtcC4KPj4KPj4gVGVzdCB0b29sczoKPj4gbWFrZWR1bXBmaWxl W3YxLjYuM106IGh0dHBzOi8vZ2l0aHViLmNvbS9MaWFuYm9KL21ha2VkdW1wZmlsZQo+PiBjb21t aXQgZTFkZTEwM2VjYThmIChBIGRyYWZ0IGZvciBrZHVtcCB2bWNvcmUgYWJvdXQgQU1EIFNNRSkK Pj4gQXV0aG9yOiBMaWFuYm8gSmlhbmcgPGxpamlhbmdAcmVkaGF0LmNvbT4KPj4gRGF0ZTogICBN b24gTWF5IDE0IDE3OjAyOjQwIDIwMTggKzA4MDAKPj4gTm90ZTogVGhpcyBwYXRjaCBjYW4gb25s eSBkdW1wIHZtY29yZSBpbiB0aGUgY2FzZSBvZiBTTUUgZW5hYmxlZC4KPj4KPj4gY3Jhc2gtNy4y LjE6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcmFzaC11dGlsaXR5L2NyYXNoLmdpdAo+PiBjb21taXQg MWUxYmQ5YzRjMWJlIChGaXggZm9yIHRoZSAiYnBmIiBjb21tYW5kIGRpc3BsYXkgb24gTGludXgg NC4xNy1yYzEpCj4+IEF1dGhvcjogRGF2ZSBBbmRlcnNvbiA8YW5kZXJzb25AcmVkaGF0LmNvbT4K Pj4gRGF0ZTogICBGcmkgTWF5IDExIDE1OjU0OjMyIDIwMTggLTA0MDAKPj4KPj4gVGVzdCBlbnZp cm9ubWVudDoKPj4gSFAgUHJvTGlhbnQgREwzODVHZW4xMCBBTUQgRVBZQyA3MjUxCj4+IDgtQ29y ZSBQcm9jZXNzb3IKPj4gMzI3NjggTUIgbWVtb3J5Cj4+IDYwMCBHQiBkaXNrIHNwYWNlCj4+Cj4+ IExpbnV4IDQuMTctcmM3Ogo+PiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tl cm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0Cj4+IGNvbW1pdCBiMDRlMjE3NzA0YjcgKCJMaW51 eCA0LjE3LXJjNyIpCj4+IEF1dGhvcjogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgo+PiBEYXRlOiAgIFN1biBNYXkgMjcgMTM6MDE6NDcgMjAxOCAtMDcwMAo+ Pgo+PiBSZWZlcmVuY2U6Cj4+IEFNRDY0IEFyY2hpdGVjdHVyZSBQcm9ncmFtbWVyJ3MgTWFudWFs Cj4+IGh0dHBzOi8vc3VwcG9ydC5hbWQuY29tL1RlY2hEb2NzLzI0NTkzLnBkZgo+Pgo+PiBTb21l IGNoYW5nZXM6Cj4+IDEuIHJlbW92ZSB0aGUgc21lX2FjdGl2ZSgpIGNoZWNrIGluIF9faW9yZW1h cF9jYWxsZXIoKS4KPj4gMi4gcmVtb3ZlIHRoZSAnI2lmZGVmJyBzdHVmZiB0aHJvdWdob3V0IHRo aXMgcGF0Y2guCj4+IDMuIHB1dCBzb21lIGxvZ2ljIGludG8gdGhlIGVhcmx5X21lbXJlbWFwX3Bn cHJvdF9hZGp1c3QoKSBhbmQgY2xlYW4gdGhlCj4+IHByZXZpb3VzIHVubmVjZXNzYXJ5IGNoYW5n ZXMsIGZvciBleGFtcGxlOiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9kbWkuaCwKPj4gYXJjaC94ODYv a2VybmVsL2FjcGkvYm9vdC5jLCBkcml2ZXJzL2FjcGkvdGFibGVzLmMuCj4+IDQuIGFkZCBhIG5l dyBmaWxlIGFuZCBtb2RpZnkgTWFrZWZpbGUuCj4+IDUuIGNsZWFuIGNvbXBpbGUgd2FybmluZyBp biBjb3B5X2RldmljZV90YWJsZSgpIGFuZCBzb21lIGNvbXBpbGUgZXJyb3IuCj4+IDYuIHNwbGl0 IHRoZSBvcmlnaW5hbCBwYXRjaCBpbnRvIGZvdXIgcGF0Y2hlcywgaXQgd2lsbCBiZSBiZXR0ZXIg Zm9yCj4+IHJldmlldy4KPj4KPj4gU29tZSBrbm93biBpc3N1ZXM6Cj4+IDEuIGFib3V0IFNNRQo+ PiBVcHN0cmVhbSBrZXJuZWwgZG9lc24ndCB3b3JrIHdoZW4gd2UgdXNlIGtleGVjIGluIHRoZSBm b2xsb3cgY29tbWFuZC4gVGhlCj4+IHN5c3RlbSB3aWxsIGhhbmcuCj4+IChUaGlzIGlzc3VlIGRv ZXNuJ3QgbWF0dGVyIHdpdGggdGhlIGtkdW1wIHBhdGNoLikKPj4KPj4gUmVwcm9kdWNlIHN0ZXBz Ogo+PiAgIyBrZXhlYyAtbCAvYm9vdC92bWxpbnV6LTQuMTcuMC1yYzcrIC0taW5pdHJkPS9ib290 L2luaXRyYW1mcy00LjE3LjAtcmM3Ky5pbWcgLS1jb21tYW5kLWxpbmU9InJvb3Q9L2Rldi9tYXBw ZXIvcmhlbF9ocC0tZGwzODVnMTAtLTAzLXJvb3Qgcm8gbWVtX2VuY3J5cHQ9b24gcmQubHZtLmx2 PXJoZWxfaHAtZGwzODVnMTAtMDMvcm9vdCByZC5sdm0ubHY9cmhlbF9ocC1kbDM4NWcxMC0wMy9z d2FwIGNvbnNvbGU9dHR5UzAsMTE1MjAwbjgxIExBTkc9ZW5fVVMuVVRGLTggZWFybHlwcmludGs9 c2VyaWFsIGRlYnVnIG5va2FzbHIiCj4+ICAjIGtleGVjIC1lIChvciByZWJvb3QpCj4+Cj4+IFRo ZSBzeXN0ZW0gd2lsbCBoYW5nOgo+PiBbIDEyNDguOTMyMjM5XSBrZXhlY19jb3JlOiBTdGFydGlu ZyBuZXcga2VybmVsCj4+IGVhcmx5IGNvbnNvbGUgaW4gZXh0cmFjdF9rZXJuZWwKPj4gaW5wdXRf ZGF0YTogMHgwMDAwMDAwODdlOTFjM2I0Cj4+IGlucHV0X2xlbjogMHgwMDAwMDAwMDAwNjdmY2Jk Cj4+IG91dHB1dDogMHgwMDAwMDAwODdkNDAwMDAwCj4+IG91dHB1dF9sZW46IDB4MDAwMDAwMDAw MWI2ZmE5MAo+PiBrZXJuZWxfdG90YWxfc2l6ZTogMHgwMDAwMDAwMDAxYTlkMDAwCj4+IHRyYW1w b2xpbmVfMzJiaXQ6IDB4MDAwMDAwMDAwMDA5OTAwMAo+Pgo+PiBEZWNvbXByZXNzaW5nIExpbnV4 Li4uCj4+IFBhcnNpbmcgRUxGLi4uICAgICAgICBbLWhlcmUgdGhlIHN5c3RlbSB3aWxsIGhhbmdd Cj4+Cj4+IDIuIGFib3V0IFNFVgo+PiBVcHN0cmVhbSBrZXJuZWwoSG9zdCBPUykgZG9lc24ndCB3 b3JrIGluIGhvc3Qgc2lkZSwgc29tZSBkcml2ZXJzIGFib3V0Cj4+IFNFViBhbHdheXMgZ28gd3Jv bmcgaW4gaG9zdCBzaWRlLiBXZSBjYW4ndCBib290IFNFViBHdWVzdCBPUyB0byB0ZXN0Cj4+IGtk dW1wIHBhdGNoLiBNYXliZSBpdCBpcyBtb3JlIHJlYXNvbmFibGUgdG8gaW1wcm92ZSBTRVYgaW4g YW5vdGhlcgo+PiBwYXRjaC4gV2hlbiBzb21lIGRyaXZlcnMgY2FuIHdvcmsgaW4gaG9zdCBzaWRl IGFuZCBpdCBjYW4gYWxzbyBib290Cj4+IFZpcnR1YWwgTWFjaGluZShTRVYgR3Vlc3QgT1MpLCBp dCB3aWxsIGJlIHN1aXRhYmxlIHRvIGZpeCBTRVYgZm9yIGtkdW1wLgo+Pgo+PiBbICAzNjkuNDI2 MTMxXSBJTkZPOiB0YXNrIHN5c3RlbWQtdWRldmQ6ODY1IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAx MjAgc2Vjb25kcy4KPj4gWyAgMzY5LjQzMzE3N10gICAgICAgTm90IHRhaW50ZWQgNC4xNy4wLXJj NSsgIzYwCj4+IFsgIDM2OS40Mzc1ODVdICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdf dGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4KPj4gWyAgMzY5LjQ0NTc4 M10gc3lzdGVtZC11ZGV2ZCAgIEQgICAgMCAgIDg2NSAgICA4MTMgMHg4MDAwMDAwNAo+PiBbICAz NjkuNDUxMzIzXSBDYWxsIFRyYWNlOgo+PiBbICAzNjkuNDUzODE1XSAgPyBfX3NjaGVkdWxlKzB4 MjkwLzB4ODcwCj4+IFsgIDM2OS40NTc1MjNdICBzY2hlZHVsZSsweDMyLzB4ODAKPj4gWyAgMzY5 LjQ2MDcxNF0gIF9fc2V2X2RvX2NtZF9sb2NrZWQrMHgxZjYvMHgyYTAgW2NjcF0KPj4gWyAgMzY5 LjQ2NTU1Nl0gID8gY2xlYW51cF91ZXZlbnRfZW52KzB4MTAvMHgxMAo+PiBbICAzNjkuNDcwMDg0 XSAgPyByZW1vdmVfd2FpdF9xdWV1ZSsweDYwLzB4NjAKPj4gWyAgMzY5LjQ3NDIxOV0gID8gMHhm ZmZmZmZmZmMwMjQ3MDAwCj4+IFsgIDM2OS40Nzc1NzJdICBfX3Nldl9wbGF0Zm9ybV9pbml0X2xv Y2tlZCsweDJiLzB4NzAgW2NjcF0KPj4gWyAgMzY5LjQ4Mjg0M10gIHNldl9wbGF0Zm9ybV9pbml0 KzB4MWQvMHgzMCBbY2NwXQo+PiBbICAzNjkuNDg3MzMzXSAgcHNwX3BjaV9pbml0KzB4NDAvMHhl MCBbY2NwXQo+PiBbICAzNjkuNDkxMzgwXSAgPyAweGZmZmZmZmZmYzAyNDcwMDAKPj4gWyAgMzY5 LjQ5NDkzNl0gIHNwX21vZF9pbml0KzB4MTgvMHgxMDAwIFtjY3BdCj4+IFsgIDM2OS40OTkwNzFd ICBkb19vbmVfaW5pdGNhbGwrMHg0ZS8weDFkNAo+PiBbICAzNjkuNTAyOTQ0XSAgPyBfY29uZF9y ZXNjaGVkKzB4MTUvMHgzMAo+PiBbICAzNjkuNTA2NzI4XSAgPyBrbWVtX2NhY2hlX2FsbG9jX3Ry YWNlKzB4YWUvMHgxZDAKPj4gWyAgMzY5LjUxMTM4Nl0gID8gZG9faW5pdF9tb2R1bGUrMHgyMi8w eDIyMAo+PiBbICAzNjkuNTE1MzQ1XSAgZG9faW5pdF9tb2R1bGUrMHg1YS8weDIyMAo+PiBbICAz NjkuNTE5NDQ0XSAgbG9hZF9tb2R1bGUrMHgyMWNiLzB4MmE1MAo+PiBbICAzNjkuNTIzMjI3XSAg PyBtX3Nob3crMHgxYzAvMHgxYzAKPj4gWyAgMzY5LjUyNjU3MV0gID8gc2VjdXJpdHlfY2FwYWJs ZSsweDNmLzB4NjAKPj4gWyAgMzY5LjUzMDYxMV0gIF9fZG9fc3lzX2Zpbml0X21vZHVsZSsweDk0 LzB4ZTAKPj4gWyAgMzY5LjUzNDkxNV0gIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDE4MAo+PiBbICAz NjkuNTM4NjA3XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQo+PiBb ICAzNjkuNTQzNjk4XSBSSVA6IDAwMzM6MHg3ZjcwOGU2MzExYjkKPj4gWyAgMzY5LjU0NzUzNl0g UlNQOiAwMDJiOjAwMDA3ZmZmZjlkMzJhYTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAw MDAwMDAwMDAwMDEzOQo+PiBbICAzNjkuNTU1MTYyXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwNTU2MDJhMDRjMmQwIFJDWDogMDAwMDdmNzA4ZTYzMTFiOQo+PiBbICAzNjkuNTYyMzQ2 XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwN2Y3MDhlZjUyMDM5IFJESTogMDAwMDAw MDAwMDAwMDAwOAo+PiBbICAzNjkuNTY5ODAxXSBSQlA6IDAwMDA3ZjcwOGVmNTIwMzkgUjA4OiAw MDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDU1NjAyYTA0OGIyMAo+PiBbICAzNjkuNTc2OTg4XSBS MTA6IDAwMDAwMDAwMDAwMDAwMDggUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAw MDAwMDAwMAo+PiBbICAzNjkuNTg0MTc3XSBSMTM6IDAwMDA1NTYwMmEwNzUyNjAgUjE0OiAwMDAw MDAwMDAwMDIwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAo+Pgo+PiBMaWFuYm8gSmlhbmcgKDQp Ogo+PiAgIEFkZCBhIGZ1bmN0aW9uKGlvcmVtYXBfZW5jcnlwdGVkKSBmb3Iga2R1bXAgd2hlbiBB TUQgc21lIGVuYWJsZWQKPj4gICBBbGxvY2F0ZSBwYWdlcyBmb3Iga2R1bXAgd2l0aG91dCBlbmNy eXB0aW9uIHdoZW4gU01FIGlzIGVuYWJsZWQKPj4gICBSZW1hcCB0aGUgZGV2aWNlIHRhYmxlIG9m IElPTU1VIGluIGVuY3J5cHRlZCBtYW5uZXIgZm9yIGtkdW1wCj4+ICAgSGVscCB0byBkdW1wIHRo ZSBvbGQgbWVtb3J5IGVuY3J5cHRlZCBpbnRvIHZtY29yZSBmaWxlCj4+Cj4+ICBhcmNoL3g4Ni9p bmNsdWRlL2FzbS9pby5oICAgICAgICAgICAgfCAgMyArKwo+PiAgYXJjaC94ODYva2VybmVsL01h a2VmaWxlICAgICAgICAgICAgIHwgIDEgKwo+PiAgYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBf ZW5jcnlwdC5jIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBh cmNoL3g4Ni9tbS9pb3JlbWFwLmMgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKysrLS0t LS0tCj4+ICBkcml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMgICAgICAgfCAxNSArKysrKysr KystCj4+ICBmcy9wcm9jL3ZtY29yZS5jICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKysr KysrLS0tLQo+PiAgaW5jbHVkZS9saW51eC9jcmFzaF9kdW1wLmggICAgICAgICAgIHwgMTEgKysr KysrKysKPj4gIGtlcm5lbC9rZXhlY19jb3JlLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysr KysrCj4+ICA4IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMo LSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3g4Ni9rZXJuZWwvY3Jhc2hfZHVtcF9lbmNy eXB0LmMKPj4KPj4gLS0gCj4+IDIuOS41Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IGtleGVjIG1haWxpbmcgbGlzdAo+PiBrZXhlY0Bs aXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8va2V4ZWMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3Jn Cmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73] helo=mx1.redhat.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fVq7y-0001vQ-2f for kexec@lists.infradead.org; Thu, 21 Jun 2018 03:19:27 +0000 Subject: Re: [PATCH 0/4 V3] Support kdump for AMD secure memory encryption(SME) References: <20180616082714.32035-1-lijiang@redhat.com> <20180621012116.GF29979@MiWiFi-R3L-srv> From: lijiang Message-ID: Date: Thu, 21 Jun 2018 11:18:58 +0800 MIME-Version: 1.0 In-Reply-To: <20180621012116.GF29979@MiWiFi-R3L-srv> Content-Language: en-US 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: Baoquan He Cc: thomas.lendacky@amd.com, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, akpm@linux-foundation.org, dyoung@redhat.com 5ZyoIDIwMTjlubQwNuaciDIx5pelIDA5OjIxLCBCYW9xdWFuIEhlIOWGmemBkzoKPiBPbiAwNi8x Ni8xOCBhdCAwNDoyN3BtLCBMaWFuYm8gSmlhbmcgd3JvdGU6Cj4+IEl0IGlzIGNvbnZlbmllbnQg dG8gcmVtYXAgdGhlIG9sZCBtZW1vcnkgZW5jcnlwdGVkIHRvIHRoZSBzZWNvbmQga2VybmVsIGJ5 Cj4+IGNhbGxpbmcgaW9yZW1hcF9lbmNyeXB0ZWQoKS4KPj4KPj4gV2hlbiBzbWUgZW5hYmxlZCBv biBBTUQgc2VydmVyLCB3ZSBhbHNvIG5lZWQgdG8gc3VwcG9ydCBrZHVtcC4gQmVjYXVzZQo+PiB0 aGUgbWVtb3J5IGlzIGVuY3J5cHRlZCBpbiB0aGUgZmlyc3Qga2VybmVsLCB3ZSB3aWxsIHJlbWFw IHRoZSBvbGQgbWVtb3J5Cj4+IGVuY3J5cHRlZCB0byB0aGUgc2Vjb25kIGtlcm5lbChjcmFzaCBr ZXJuZWwpLCBhbmQgc21lIGlzIGFsc28gZW5hYmxlZCBpbgo+PiB0aGUgc2Vjb25kIGtlcm5lbCwg b3RoZXJ3aXNlIHRoZSBvbGQgbWVtb3J5IGVuY3J5cHRlZCBjYW4gbm90IGJlIGRlY3J5cHRlZC4K Pj4gQmVjYXVzZSBzaW1wbHkgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgQy1iaXQgb24gYSBwYWdl IHdpbGwgbm90Cj4+IGF1dG9tYXRpY2FsbHkgZW5jcnlwdCB0aGUgZXhpc3RpbmcgY29udGVudHMg b2YgYSBwYWdlLCBhbmQgYW55IGRhdGEgaW4gdGhlCj4+IHBhZ2UgcHJpb3IgdG8gdGhlIEMtYml0 IG1vZGlmaWNhdGlvbiB3aWxsIGJlY29tZSB1bmludGVsbGlnaWJsZS4gQSBwYWdlIG9mCj4+IG1l bW9yeSB0aGF0IGlzIG1hcmtlZCBlbmNyeXB0ZWQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGRlY3J5 cHRlZCB3aGVuIHJlYWQKPj4gZnJvbSBEUkFNIGFuZCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZW5j cnlwdGVkIHdoZW4gd3JpdHRlbiB0byBEUkFNLgo+Pgo+PiBGb3IgdGhlIGtkdW1wLCBpdCBpcyBu ZWNlc3NhcnkgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgbWVtb3J5IGlzCj4+IGVuY3J5cHRl ZC4gRnVydGhlcm1vcmUsIHdlIHNob3VsZCBhbHNvIGtub3cgd2hpY2ggcGFydCBvZiB0aGUgbWVt b3J5IGlzCj4+IGVuY3J5cHRlZCBvciBkZWNyeXB0ZWQuIFdlIHdpbGwgYXBwcm9wcmlhdGVseSBy ZW1hcCB0aGUgbWVtb3J5IGFjY29yZGluZwo+PiB0byB0aGUgc3BlY2lmaWMgc2l0dWF0aW9uIGlu IG9yZGVyIHRvIHRlbGwgY3B1IGhvdyB0byBkZWFsIHdpdGggdGhlCj4+IGRhdGEoZW5jcnlwdGVk IG9yIGRlY3J5cHRlZCkuIEZvciBleGFtcGxlLCB3aGVuIHNtZSBlbmFibGVkLCBpZiB0aGUgb2xk Cj4+IG1lbW9yeSBpcyBlbmNyeXB0ZWQsIHdlIHdpbGwgcmVtYXAgdGhlIG9sZCBtZW1vcnkgaW4g ZW5jcnlwdGVkIHdheSwgd2hpY2gKPj4gd2lsbCBhdXRvbWF0aWNhbGx5IGRlY3J5cHQgdGhlIG9s ZCBtZW1vcnkgZW5jcnlwdGVkIHdoZW4gd2UgcmVhZCB0aG9zZSBkYXRhCj4+IGZyb20gdGhlIHJl bWFwcGluZyBhZGRyZXNzLgo+Pgo+PiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiB8IGZpcnN0LWtlcm5lbCB8IHNlY29uZC1rZXJuZWwgfCBrZHVtcCBz dXBwb3J0IHwKPj4gfCAgICAgIChtZW1fZW5jcnlwdD1vbnxvZmYpICAgIHwgICAoeWVzfG5vKSAg ICB8Cj4+IHwtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tfAo+ PiB8ICAgICBvbiAgICAgICB8ICAgICBvbiAgICAgICAgfCAgICAgeWVzICAgICAgIHwKPj4gfCAg ICAgb2ZmICAgICAgfCAgICAgb2ZmICAgICAgIHwgICAgIHllcyAgICAgICB8Cj4+IHwgICAgIG9u ICAgICAgIHwgICAgIG9mZiAgICAgICB8ICAgICBubyAgICAgICAgfAo+IAo+IAo+PiB8ICAgICBv ZmYgICAgICB8ICAgICBvbiAgICAgICAgfCAgICAgbm8gICAgICAgIHwKPiAKPiBJdCdzIG5vdCBj bGVhciB0byBtZSBoZXJlLiBJZiAxc3Qga2VybmVsIHNtZSBpcyBvZmYsIGluIDJuZCBrZXJuZWws IHdoZW4KPiB5b3UgcmVtYXAgdGhlIG9sZCBtZW1vcnkgd2l0aCBub24tc21lIG1vZGUsIHdoeSBk aWQgaXQgZmFpbD8KPiAKVGhhbmsgeW91LCBCYW9xdWFuLgpGb3Iga2R1bXAsIHRoZXJlIGFyZSB0 d28gY2FzZXMgdGhhdCBkb2Vzbid0IG5lZWQgdG8gc3VwcG9ydDoKCjEuIFNNRSBvbihmaXJzdCBr ZXJuZWwpLCBidXQgU01FIG9mZihzZWNvbmQga2VybmVsKS4KQmVjYXVzZSB0aGUgb2xkIG1lbW9y eSBpcyBlbmNyeXB0ZWQsIHdlIGNhbid0IGRlY3J5cHQgdGhlIG9sZCBtZW1vcnkgaWYgU01FIGlz IG9mZgppbiB0aGUgc2Vjb25kIGtlcm5lbChpbiBrZHVtcCBtb2RlKS4KCjIuIFNNRSBvZmYoZmly c3Qga2VybmVsKSwgYnV0IFNNRSBvbihzZWNvbmQga2VybmVsKQpNYXliZSB0aGlzIHNpdHVhdGlv biBkb2Vzbid0IGhhdmUgc2lnbmlmaWNhbmNlIGluIGFjdHVhbCBkZXBsb3ltZW50LCBmdXJ0aGVy bW9yZSwgaXQKd2lsbCBhbHNvIGluY3JlYXNlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBjb2RlLiBJ dCdzIGp1c3QgZm9yIHRlc3RpbmcsIG1heWJlIGl0IGlzCnVubmVjZXNzYXJ5IHRvIHN1cHBvcnQg aXQsIGJlY2F1c2UgdGhlIG9sZCBtZW1vcnkgaXMgdW5lbmNyeXB0ZWQuCgpUaGFua3MuCkxpYW5i bwo+IEFuZCBwbGVhc2UgcnVuIHNjcmlwdHMvZ2V0X21haW50YWluZXIucGwgYW5kIGFkZCBtYWlu dGFpbmVycyBvZgo+IGNvbXBvbmVudCB3aGljaCBpcyBhZmZlY3RlZCBpbiBwYXRjaCB0byBDQyBs aXN0LgpHcmVhdCEgSSBmb3Jnb3QgQ0MgbWFpbnRhaW5lcnMsIHRoYW5rcyBmb3IgeW91ciByZW1p bmRlci4KCkxpYW5ibwo+IAo+PiB8X19fX19fX19fX19fX198X19fX19fX19fX19fX19ffF9fX19f X19fX19fX19fX3wKPj4KPj4gVGhpcyBwYXRjaCBpcyBvbmx5IGZvciBTTUUga2R1bXAsIGl0IGlz IG5vdCBzdXBwb3J0IFNFViBrZHVtcC4KPj4KPj4gVGVzdCB0b29sczoKPj4gbWFrZWR1bXBmaWxl W3YxLjYuM106IGh0dHBzOi8vZ2l0aHViLmNvbS9MaWFuYm9KL21ha2VkdW1wZmlsZQo+PiBjb21t aXQgZTFkZTEwM2VjYThmIChBIGRyYWZ0IGZvciBrZHVtcCB2bWNvcmUgYWJvdXQgQU1EIFNNRSkK Pj4gQXV0aG9yOiBMaWFuYm8gSmlhbmcgPGxpamlhbmdAcmVkaGF0LmNvbT4KPj4gRGF0ZTogICBN b24gTWF5IDE0IDE3OjAyOjQwIDIwMTggKzA4MDAKPj4gTm90ZTogVGhpcyBwYXRjaCBjYW4gb25s eSBkdW1wIHZtY29yZSBpbiB0aGUgY2FzZSBvZiBTTUUgZW5hYmxlZC4KPj4KPj4gY3Jhc2gtNy4y LjE6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcmFzaC11dGlsaXR5L2NyYXNoLmdpdAo+PiBjb21taXQg MWUxYmQ5YzRjMWJlIChGaXggZm9yIHRoZSAiYnBmIiBjb21tYW5kIGRpc3BsYXkgb24gTGludXgg NC4xNy1yYzEpCj4+IEF1dGhvcjogRGF2ZSBBbmRlcnNvbiA8YW5kZXJzb25AcmVkaGF0LmNvbT4K Pj4gRGF0ZTogICBGcmkgTWF5IDExIDE1OjU0OjMyIDIwMTggLTA0MDAKPj4KPj4gVGVzdCBlbnZp cm9ubWVudDoKPj4gSFAgUHJvTGlhbnQgREwzODVHZW4xMCBBTUQgRVBZQyA3MjUxCj4+IDgtQ29y ZSBQcm9jZXNzb3IKPj4gMzI3NjggTUIgbWVtb3J5Cj4+IDYwMCBHQiBkaXNrIHNwYWNlCj4+Cj4+ IExpbnV4IDQuMTctcmM3Ogo+PiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tl cm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0Cj4+IGNvbW1pdCBiMDRlMjE3NzA0YjcgKCJMaW51 eCA0LjE3LXJjNyIpCj4+IEF1dGhvcjogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgo+PiBEYXRlOiAgIFN1biBNYXkgMjcgMTM6MDE6NDcgMjAxOCAtMDcwMAo+ Pgo+PiBSZWZlcmVuY2U6Cj4+IEFNRDY0IEFyY2hpdGVjdHVyZSBQcm9ncmFtbWVyJ3MgTWFudWFs Cj4+IGh0dHBzOi8vc3VwcG9ydC5hbWQuY29tL1RlY2hEb2NzLzI0NTkzLnBkZgo+Pgo+PiBTb21l IGNoYW5nZXM6Cj4+IDEuIHJlbW92ZSB0aGUgc21lX2FjdGl2ZSgpIGNoZWNrIGluIF9faW9yZW1h cF9jYWxsZXIoKS4KPj4gMi4gcmVtb3ZlIHRoZSAnI2lmZGVmJyBzdHVmZiB0aHJvdWdob3V0IHRo aXMgcGF0Y2guCj4+IDMuIHB1dCBzb21lIGxvZ2ljIGludG8gdGhlIGVhcmx5X21lbXJlbWFwX3Bn cHJvdF9hZGp1c3QoKSBhbmQgY2xlYW4gdGhlCj4+IHByZXZpb3VzIHVubmVjZXNzYXJ5IGNoYW5n ZXMsIGZvciBleGFtcGxlOiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9kbWkuaCwKPj4gYXJjaC94ODYv a2VybmVsL2FjcGkvYm9vdC5jLCBkcml2ZXJzL2FjcGkvdGFibGVzLmMuCj4+IDQuIGFkZCBhIG5l dyBmaWxlIGFuZCBtb2RpZnkgTWFrZWZpbGUuCj4+IDUuIGNsZWFuIGNvbXBpbGUgd2FybmluZyBp biBjb3B5X2RldmljZV90YWJsZSgpIGFuZCBzb21lIGNvbXBpbGUgZXJyb3IuCj4+IDYuIHNwbGl0 IHRoZSBvcmlnaW5hbCBwYXRjaCBpbnRvIGZvdXIgcGF0Y2hlcywgaXQgd2lsbCBiZSBiZXR0ZXIg Zm9yCj4+IHJldmlldy4KPj4KPj4gU29tZSBrbm93biBpc3N1ZXM6Cj4+IDEuIGFib3V0IFNNRQo+ PiBVcHN0cmVhbSBrZXJuZWwgZG9lc24ndCB3b3JrIHdoZW4gd2UgdXNlIGtleGVjIGluIHRoZSBm b2xsb3cgY29tbWFuZC4gVGhlCj4+IHN5c3RlbSB3aWxsIGhhbmcuCj4+IChUaGlzIGlzc3VlIGRv ZXNuJ3QgbWF0dGVyIHdpdGggdGhlIGtkdW1wIHBhdGNoLikKPj4KPj4gUmVwcm9kdWNlIHN0ZXBz Ogo+PiAgIyBrZXhlYyAtbCAvYm9vdC92bWxpbnV6LTQuMTcuMC1yYzcrIC0taW5pdHJkPS9ib290 L2luaXRyYW1mcy00LjE3LjAtcmM3Ky5pbWcgLS1jb21tYW5kLWxpbmU9InJvb3Q9L2Rldi9tYXBw ZXIvcmhlbF9ocC0tZGwzODVnMTAtLTAzLXJvb3Qgcm8gbWVtX2VuY3J5cHQ9b24gcmQubHZtLmx2 PXJoZWxfaHAtZGwzODVnMTAtMDMvcm9vdCByZC5sdm0ubHY9cmhlbF9ocC1kbDM4NWcxMC0wMy9z d2FwIGNvbnNvbGU9dHR5UzAsMTE1MjAwbjgxIExBTkc9ZW5fVVMuVVRGLTggZWFybHlwcmludGs9 c2VyaWFsIGRlYnVnIG5va2FzbHIiCj4+ICAjIGtleGVjIC1lIChvciByZWJvb3QpCj4+Cj4+IFRo ZSBzeXN0ZW0gd2lsbCBoYW5nOgo+PiBbIDEyNDguOTMyMjM5XSBrZXhlY19jb3JlOiBTdGFydGlu ZyBuZXcga2VybmVsCj4+IGVhcmx5IGNvbnNvbGUgaW4gZXh0cmFjdF9rZXJuZWwKPj4gaW5wdXRf ZGF0YTogMHgwMDAwMDAwODdlOTFjM2I0Cj4+IGlucHV0X2xlbjogMHgwMDAwMDAwMDAwNjdmY2Jk Cj4+IG91dHB1dDogMHgwMDAwMDAwODdkNDAwMDAwCj4+IG91dHB1dF9sZW46IDB4MDAwMDAwMDAw MWI2ZmE5MAo+PiBrZXJuZWxfdG90YWxfc2l6ZTogMHgwMDAwMDAwMDAxYTlkMDAwCj4+IHRyYW1w b2xpbmVfMzJiaXQ6IDB4MDAwMDAwMDAwMDA5OTAwMAo+Pgo+PiBEZWNvbXByZXNzaW5nIExpbnV4 Li4uCj4+IFBhcnNpbmcgRUxGLi4uICAgICAgICBbLWhlcmUgdGhlIHN5c3RlbSB3aWxsIGhhbmdd Cj4+Cj4+IDIuIGFib3V0IFNFVgo+PiBVcHN0cmVhbSBrZXJuZWwoSG9zdCBPUykgZG9lc24ndCB3 b3JrIGluIGhvc3Qgc2lkZSwgc29tZSBkcml2ZXJzIGFib3V0Cj4+IFNFViBhbHdheXMgZ28gd3Jv bmcgaW4gaG9zdCBzaWRlLiBXZSBjYW4ndCBib290IFNFViBHdWVzdCBPUyB0byB0ZXN0Cj4+IGtk dW1wIHBhdGNoLiBNYXliZSBpdCBpcyBtb3JlIHJlYXNvbmFibGUgdG8gaW1wcm92ZSBTRVYgaW4g YW5vdGhlcgo+PiBwYXRjaC4gV2hlbiBzb21lIGRyaXZlcnMgY2FuIHdvcmsgaW4gaG9zdCBzaWRl IGFuZCBpdCBjYW4gYWxzbyBib290Cj4+IFZpcnR1YWwgTWFjaGluZShTRVYgR3Vlc3QgT1MpLCBp dCB3aWxsIGJlIHN1aXRhYmxlIHRvIGZpeCBTRVYgZm9yIGtkdW1wLgo+Pgo+PiBbICAzNjkuNDI2 MTMxXSBJTkZPOiB0YXNrIHN5c3RlbWQtdWRldmQ6ODY1IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAx MjAgc2Vjb25kcy4KPj4gWyAgMzY5LjQzMzE3N10gICAgICAgTm90IHRhaW50ZWQgNC4xNy4wLXJj NSsgIzYwCj4+IFsgIDM2OS40Mzc1ODVdICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdf dGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4KPj4gWyAgMzY5LjQ0NTc4 M10gc3lzdGVtZC11ZGV2ZCAgIEQgICAgMCAgIDg2NSAgICA4MTMgMHg4MDAwMDAwNAo+PiBbICAz NjkuNDUxMzIzXSBDYWxsIFRyYWNlOgo+PiBbICAzNjkuNDUzODE1XSAgPyBfX3NjaGVkdWxlKzB4 MjkwLzB4ODcwCj4+IFsgIDM2OS40NTc1MjNdICBzY2hlZHVsZSsweDMyLzB4ODAKPj4gWyAgMzY5 LjQ2MDcxNF0gIF9fc2V2X2RvX2NtZF9sb2NrZWQrMHgxZjYvMHgyYTAgW2NjcF0KPj4gWyAgMzY5 LjQ2NTU1Nl0gID8gY2xlYW51cF91ZXZlbnRfZW52KzB4MTAvMHgxMAo+PiBbICAzNjkuNDcwMDg0 XSAgPyByZW1vdmVfd2FpdF9xdWV1ZSsweDYwLzB4NjAKPj4gWyAgMzY5LjQ3NDIxOV0gID8gMHhm ZmZmZmZmZmMwMjQ3MDAwCj4+IFsgIDM2OS40Nzc1NzJdICBfX3Nldl9wbGF0Zm9ybV9pbml0X2xv Y2tlZCsweDJiLzB4NzAgW2NjcF0KPj4gWyAgMzY5LjQ4Mjg0M10gIHNldl9wbGF0Zm9ybV9pbml0 KzB4MWQvMHgzMCBbY2NwXQo+PiBbICAzNjkuNDg3MzMzXSAgcHNwX3BjaV9pbml0KzB4NDAvMHhl MCBbY2NwXQo+PiBbICAzNjkuNDkxMzgwXSAgPyAweGZmZmZmZmZmYzAyNDcwMDAKPj4gWyAgMzY5 LjQ5NDkzNl0gIHNwX21vZF9pbml0KzB4MTgvMHgxMDAwIFtjY3BdCj4+IFsgIDM2OS40OTkwNzFd ICBkb19vbmVfaW5pdGNhbGwrMHg0ZS8weDFkNAo+PiBbICAzNjkuNTAyOTQ0XSAgPyBfY29uZF9y ZXNjaGVkKzB4MTUvMHgzMAo+PiBbICAzNjkuNTA2NzI4XSAgPyBrbWVtX2NhY2hlX2FsbG9jX3Ry YWNlKzB4YWUvMHgxZDAKPj4gWyAgMzY5LjUxMTM4Nl0gID8gZG9faW5pdF9tb2R1bGUrMHgyMi8w eDIyMAo+PiBbICAzNjkuNTE1MzQ1XSAgZG9faW5pdF9tb2R1bGUrMHg1YS8weDIyMAo+PiBbICAz NjkuNTE5NDQ0XSAgbG9hZF9tb2R1bGUrMHgyMWNiLzB4MmE1MAo+PiBbICAzNjkuNTIzMjI3XSAg PyBtX3Nob3crMHgxYzAvMHgxYzAKPj4gWyAgMzY5LjUyNjU3MV0gID8gc2VjdXJpdHlfY2FwYWJs ZSsweDNmLzB4NjAKPj4gWyAgMzY5LjUzMDYxMV0gIF9fZG9fc3lzX2Zpbml0X21vZHVsZSsweDk0 LzB4ZTAKPj4gWyAgMzY5LjUzNDkxNV0gIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDE4MAo+PiBbICAz NjkuNTM4NjA3XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQo+PiBb ICAzNjkuNTQzNjk4XSBSSVA6IDAwMzM6MHg3ZjcwOGU2MzExYjkKPj4gWyAgMzY5LjU0NzUzNl0g UlNQOiAwMDJiOjAwMDA3ZmZmZjlkMzJhYTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAw MDAwMDAwMDAwMDEzOQo+PiBbICAzNjkuNTU1MTYyXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwNTU2MDJhMDRjMmQwIFJDWDogMDAwMDdmNzA4ZTYzMTFiOQo+PiBbICAzNjkuNTYyMzQ2 XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwN2Y3MDhlZjUyMDM5IFJESTogMDAwMDAw MDAwMDAwMDAwOAo+PiBbICAzNjkuNTY5ODAxXSBSQlA6IDAwMDA3ZjcwOGVmNTIwMzkgUjA4OiAw MDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDU1NjAyYTA0OGIyMAo+PiBbICAzNjkuNTc2OTg4XSBS MTA6IDAwMDAwMDAwMDAwMDAwMDggUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAw MDAwMDAwMAo+PiBbICAzNjkuNTg0MTc3XSBSMTM6IDAwMDA1NTYwMmEwNzUyNjAgUjE0OiAwMDAw MDAwMDAwMDIwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAo+Pgo+PiBMaWFuYm8gSmlhbmcgKDQp Ogo+PiAgIEFkZCBhIGZ1bmN0aW9uKGlvcmVtYXBfZW5jcnlwdGVkKSBmb3Iga2R1bXAgd2hlbiBB TUQgc21lIGVuYWJsZWQKPj4gICBBbGxvY2F0ZSBwYWdlcyBmb3Iga2R1bXAgd2l0aG91dCBlbmNy eXB0aW9uIHdoZW4gU01FIGlzIGVuYWJsZWQKPj4gICBSZW1hcCB0aGUgZGV2aWNlIHRhYmxlIG9m IElPTU1VIGluIGVuY3J5cHRlZCBtYW5uZXIgZm9yIGtkdW1wCj4+ICAgSGVscCB0byBkdW1wIHRo ZSBvbGQgbWVtb3J5IGVuY3J5cHRlZCBpbnRvIHZtY29yZSBmaWxlCj4+Cj4+ICBhcmNoL3g4Ni9p bmNsdWRlL2FzbS9pby5oICAgICAgICAgICAgfCAgMyArKwo+PiAgYXJjaC94ODYva2VybmVsL01h a2VmaWxlICAgICAgICAgICAgIHwgIDEgKwo+PiAgYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBf ZW5jcnlwdC5jIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBh cmNoL3g4Ni9tbS9pb3JlbWFwLmMgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKysrLS0t LS0tCj4+ICBkcml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMgICAgICAgfCAxNSArKysrKysr KystCj4+ICBmcy9wcm9jL3ZtY29yZS5jICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKysr KysrLS0tLQo+PiAgaW5jbHVkZS9saW51eC9jcmFzaF9kdW1wLmggICAgICAgICAgIHwgMTEgKysr KysrKysKPj4gIGtlcm5lbC9rZXhlY19jb3JlLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysr KysrCj4+ICA4IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMo LSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3g4Ni9rZXJuZWwvY3Jhc2hfZHVtcF9lbmNy eXB0LmMKPj4KPj4gLS0gCj4+IDIuOS41Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IGtleGVjIG1haWxpbmcgbGlzdAo+PiBrZXhlY0Bs aXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8va2V4ZWMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK