From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christophe Leroy Date: Tue, 28 Jan 2020 17:05:37 +0000 Subject: Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers Message-Id: <68ed6488-aa25-ab41-8da6-f0ddeb15d52b@c-s.fr> List-Id: References: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> In-Reply-To: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Anshuman Khandual , linux-mm@kvack.org Cc: Mark Rutland , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Peter Zijlstra , James Hogan , Heiko Carstens , Michal Hocko , Dave Hansen , Paul Mackerras , sparclinux@vger.kernel.org, Thomas Gleixner , linux-s390@vger.kernel.org, Jason Gunthorpe , Michael Ellerman , x86@kernel.org, Russell King - ARM Linux , Matthew Wilcox , Steven Price , Tetsuo Handa , Gerald Schaefer , linux-snps-arc@lists.infradead.org, Ingo Molnar , Kees Cook , Masahiro Yamada , Mark Brown , "Kirill A . Shutemov" , Dan Williams , Vlastimil Babka , linux-arm-kernel@lists.infradead.org, Sri Krishna chowdary , Ard Biesheuvel , Greg Kroah-Hartman , linux-mips@vger.kernel.org, Ralf Baechle , linux-kernel@vger.kernel.org, Paul Burton , Mike Rapoport , Vineet Gupta , Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" Le 28/01/2020 à 02:27, Anshuman Khandual a écrit : > This adds tests which will validate architecture page table helpers and > other accessors in their compliance with expected generic MM semantics. > This will help various architectures in validating changes to existing > page table helpers or addition of new ones. > > This test covers basic page table entry transformations including but not > limited to old, young, dirty, clean, write, write protect etc at various > level along with populating intermediate entries with next page table page > and validating them. > > Test page table pages are allocated from system memory with required size > and alignments. The mapped pfns at page table levels are derived from a > real pfn representing a valid kernel text symbol. This test gets called > right after page_alloc_init_late(). > > This gets build and run when CONFIG_DEBUG_VM_PGTABLE is selected along with > CONFIG_VM_DEBUG. Architectures willing to subscribe this test also need to > select CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE which for now is limited to x86 and > arm64. Going forward, other architectures too can enable this after fixing > build or runtime problems (if any) with their page table helpers. > > Folks interested in making sure that a given platform's page table helpers > conform to expected generic MM semantics should enable the above config > which will just trigger this test during boot. Any non conformity here will > be reported as an warning which would need to be fixed. This test will help > catch any changes to the agreed upon semantics expected from generic MM and > enable platforms to accommodate it thereafter. > [...] > > Tested-by: Christophe Leroy #PPC32 Also tested on PPC64 (under QEMU): book3s/64 64k pages, book3s/64 4k pages and book3e/64 > Reviewed-by: Ingo Molnar > Suggested-by: Catalin Marinas > Signed-off-by: Andrew Morton > Signed-off-by: Christophe Leroy > Signed-off-by: Anshuman Khandual > --- [...] > > diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > new file mode 100644 > index 000000000000..f3f8111edbe3 > --- /dev/null > +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > @@ -0,0 +1,35 @@ > +# > +# Feature name: debug-vm-pgtable > +# Kconfig: ARCH_HAS_DEBUG_VM_PGTABLE > +# description: arch supports pgtable tests for semantics compliance > +# > + ----------------------- > + | arch |status| > + ----------------------- > + | alpha: | TODO | > + | arc: | ok | > + | arm: | TODO | > + | arm64: | ok | > + | c6x: | TODO | > + | csky: | TODO | > + | h8300: | TODO | > + | hexagon: | TODO | > + | ia64: | TODO | > + | m68k: | TODO | > + | microblaze: | TODO | > + | mips: | TODO | > + | nds32: | TODO | > + | nios2: | TODO | > + | openrisc: | TODO | > + | parisc: | TODO | > + | powerpc/32: | ok | > + | powerpc/64: | TODO | You can change the two above lines by powerpc: ok > + | riscv: | TODO | > + | s390: | TODO | > + | sh: | TODO | > + | sparc: | TODO | > + | um: | TODO | > + | unicore32: | TODO | > + | x86: | ok | > + | xtensa: | TODO | > + ----------------------- > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 1ec34e16ed65..253dcab0bebc 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -120,6 +120,7 @@ config PPC > # > select ARCH_32BIT_OFF_T if PPC32 > select ARCH_HAS_DEBUG_VIRTUAL > + select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32 Remove the 'if PPC32' as we now know it also work on PPC64. > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FORTIFY_SOURCE > diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h > index 0b6c4042942a..fb0e76d254b3 100644 > --- a/arch/x86/include/asm/pgtable_64.h > +++ b/arch/x86/include/asm/pgtable_64.h > @@ -53,6 +53,12 @@ static inline void sync_initial_page_table(void) { } > > struct mm_struct; > > +#define mm_p4d_folded mm_p4d_folded > +static inline bool mm_p4d_folded(struct mm_struct *mm) > +{ > + return !pgtable_l5_enabled(); > +} > + For me this should be part of another patch, it is not directly linked to the tests. > void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte); > void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); > > diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h > index 798ea36a0549..e0b04787e789 100644 > --- a/include/asm-generic/pgtable.h > +++ b/include/asm-generic/pgtable.h > @@ -1208,6 +1208,12 @@ static inline bool arch_has_pfn_modify_check(void) > # define PAGE_KERNEL_EXEC PAGE_KERNEL > #endif > > +#ifdef CONFIG_DEBUG_VM_PGTABLE Not sure it is a good idea to put that in include/asm-generic/pgtable.h By doing this you are forcing a rebuild of almost all files, whereas only init/main.o and mm/debug_vm_pgtable.o should be rebuilt when activating this config option. > +extern void debug_vm_pgtable(void); Please don't use the 'extern' keyword, it is useless and not to be used for functions declaration. > +#else > +static inline void debug_vm_pgtable(void) { } > +#endif > + > #endif /* !__ASSEMBLY__ */ > > #ifndef io_remap_pfn_range > diff --git a/init/main.c b/init/main.c > index da1bc0b60a7d..5e59e6ac0780 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -1197,6 +1197,7 @@ static noinline void __init kernel_init_freeable(void) > sched_init_smp(); > > page_alloc_init_late(); > + debug_vm_pgtable(); Wouldn't it be better to call debug_vm_pgtable() in kernel_init() between the call to async_synchronise_full() and ftrace_free_init_mem() ? > /* Initialize page ext after all struct pages are initialized. */ > page_ext_init(); > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 5ffe144c9794..7cceae923c05 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -653,6 +653,12 @@ config SCHED_STACK_END_CHECK > data corruption or a sporadic crash at a later stage once the region > is examined. The runtime overhead introduced is minimal. > > +config ARCH_HAS_DEBUG_VM_PGTABLE > + bool > + help > + An architecture should select this when it can successfully > + build and run DEBUG_VM_PGTABLE. > + > config DEBUG_VM > bool "Debug VM" > depends on DEBUG_KERNEL > @@ -688,6 +694,22 @@ config DEBUG_VM_PGFLAGS > > If unsure, say N. > > +config DEBUG_VM_PGTABLE > + bool "Debug arch page table for semantics compliance" > + depends on MMU > + depends on DEBUG_VM Does it really need to depend on DEBUG_VM ? I think we could make it standalone and 'default y if DEBUG_VM' instead. > + depends on ARCH_HAS_DEBUG_VM_PGTABLE > + default y > + help > + This option provides a debug method which can be used to test > + architecture page table helper functions on various platforms in > + verifying if they comply with expected generic MM semantics. This > + will help architecture code in making sure that any changes or > + new additions of these helpers still conform to expected > + semantics of the generic MM. > + > + If unsure, say N. > + Does it make sense to make it 'default y' and say 'If unsure, say N' ? > config ARCH_HAS_DEBUG_VIRTUAL > bool > Christophe 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=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable 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 42DEFC35240 for ; Tue, 28 Jan 2020 17:05:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 076A420663 for ; Tue, 28 Jan 2020 17:05:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=c-s.fr header.i=@c-s.fr header.b="NyfqsIb0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726497AbgA1RFo (ORCPT ); Tue, 28 Jan 2020 12:05:44 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:3878 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726066AbgA1RFn (ORCPT ); Tue, 28 Jan 2020 12:05:43 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 486Y0M18SRz9tyrg; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=NyfqsIb0; dkim-adsp=pass; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id BxhrHtxf1fJY; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 486Y0L6ltRz9tyrf; Tue, 28 Jan 2020 18:05:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1580231138; bh=ihfPCvoS5mhssdU/CWQGRQyoTkFqbnCSL7XYZpDWBBI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=NyfqsIb0WYfGkwwRXCi4mviBXVht5035XRkQEUMkYVrK+kvXsqyC01Ge/84pDXico JiX6P4e/rd1XwHKFdfUYAulUl8Bab7lOcDCfWoS6b7lkyqkPzcXggxczTjMouWp1w8 BakNDUS9X1lr5teDKcou4UiSzbqUTfYKRsLhysmw= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 775F08B7E7; Tue, 28 Jan 2020 18:05:40 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 34jfQVcpYhXe; Tue, 28 Jan 2020 18:05:40 +0100 (CET) Received: from [192.168.4.90] (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AE28C8B7E6; Tue, 28 Jan 2020 18:05:37 +0100 (CET) Subject: Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers To: Anshuman Khandual , linux-mm@kvack.org Cc: Andrew Morton , Vlastimil Babka , Greg Kroah-Hartman , Thomas Gleixner , Mike Rapoport , Jason Gunthorpe , Dan Williams , Peter Zijlstra , Michal Hocko , Mark Rutland , Mark Brown , Steven Price , Ard Biesheuvel , Masahiro Yamada , Kees Cook , Tetsuo Handa , Matthew Wilcox , Sri Krishna chowdary , Dave Hansen , Russell King - ARM Linux , Michael Ellerman , Paul Mackerras , Martin Schwidefsky , Heiko Carstens , "David S. Miller" , Vineet Gupta , James Hogan , Paul Burton , Ralf Baechle , "Kirill A . Shutemov" , Gerald Schaefer , Ingo Molnar , linux-snps-arc@lists.infradead.org, linux-mips@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org References: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> From: Christophe Leroy Message-ID: <68ed6488-aa25-ab41-8da6-f0ddeb15d52b@c-s.fr> Date: Tue, 28 Jan 2020 18:05:37 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 28/01/2020 à 02:27, Anshuman Khandual a écrit : > This adds tests which will validate architecture page table helpers and > other accessors in their compliance with expected generic MM semantics. > This will help various architectures in validating changes to existing > page table helpers or addition of new ones. > > This test covers basic page table entry transformations including but not > limited to old, young, dirty, clean, write, write protect etc at various > level along with populating intermediate entries with next page table page > and validating them. > > Test page table pages are allocated from system memory with required size > and alignments. The mapped pfns at page table levels are derived from a > real pfn representing a valid kernel text symbol. This test gets called > right after page_alloc_init_late(). > > This gets build and run when CONFIG_DEBUG_VM_PGTABLE is selected along with > CONFIG_VM_DEBUG. Architectures willing to subscribe this test also need to > select CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE which for now is limited to x86 and > arm64. Going forward, other architectures too can enable this after fixing > build or runtime problems (if any) with their page table helpers. > > Folks interested in making sure that a given platform's page table helpers > conform to expected generic MM semantics should enable the above config > which will just trigger this test during boot. Any non conformity here will > be reported as an warning which would need to be fixed. This test will help > catch any changes to the agreed upon semantics expected from generic MM and > enable platforms to accommodate it thereafter. > [...] > > Tested-by: Christophe Leroy #PPC32 Also tested on PPC64 (under QEMU): book3s/64 64k pages, book3s/64 4k pages and book3e/64 > Reviewed-by: Ingo Molnar > Suggested-by: Catalin Marinas > Signed-off-by: Andrew Morton > Signed-off-by: Christophe Leroy > Signed-off-by: Anshuman Khandual > --- [...] > > diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > new file mode 100644 > index 000000000000..f3f8111edbe3 > --- /dev/null > +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > @@ -0,0 +1,35 @@ > +# > +# Feature name: debug-vm-pgtable > +# Kconfig: ARCH_HAS_DEBUG_VM_PGTABLE > +# description: arch supports pgtable tests for semantics compliance > +# > + ----------------------- > + | arch |status| > + ----------------------- > + | alpha: | TODO | > + | arc: | ok | > + | arm: | TODO | > + | arm64: | ok | > + | c6x: | TODO | > + | csky: | TODO | > + | h8300: | TODO | > + | hexagon: | TODO | > + | ia64: | TODO | > + | m68k: | TODO | > + | microblaze: | TODO | > + | mips: | TODO | > + | nds32: | TODO | > + | nios2: | TODO | > + | openrisc: | TODO | > + | parisc: | TODO | > + | powerpc/32: | ok | > + | powerpc/64: | TODO | You can change the two above lines by powerpc: ok > + | riscv: | TODO | > + | s390: | TODO | > + | sh: | TODO | > + | sparc: | TODO | > + | um: | TODO | > + | unicore32: | TODO | > + | x86: | ok | > + | xtensa: | TODO | > + ----------------------- > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 1ec34e16ed65..253dcab0bebc 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -120,6 +120,7 @@ config PPC > # > select ARCH_32BIT_OFF_T if PPC32 > select ARCH_HAS_DEBUG_VIRTUAL > + select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32 Remove the 'if PPC32' as we now know it also work on PPC64. > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FORTIFY_SOURCE > diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h > index 0b6c4042942a..fb0e76d254b3 100644 > --- a/arch/x86/include/asm/pgtable_64.h > +++ b/arch/x86/include/asm/pgtable_64.h > @@ -53,6 +53,12 @@ static inline void sync_initial_page_table(void) { } > > struct mm_struct; > > +#define mm_p4d_folded mm_p4d_folded > +static inline bool mm_p4d_folded(struct mm_struct *mm) > +{ > + return !pgtable_l5_enabled(); > +} > + For me this should be part of another patch, it is not directly linked to the tests. > void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte); > void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); > > diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h > index 798ea36a0549..e0b04787e789 100644 > --- a/include/asm-generic/pgtable.h > +++ b/include/asm-generic/pgtable.h > @@ -1208,6 +1208,12 @@ static inline bool arch_has_pfn_modify_check(void) > # define PAGE_KERNEL_EXEC PAGE_KERNEL > #endif > > +#ifdef CONFIG_DEBUG_VM_PGTABLE Not sure it is a good idea to put that in include/asm-generic/pgtable.h By doing this you are forcing a rebuild of almost all files, whereas only init/main.o and mm/debug_vm_pgtable.o should be rebuilt when activating this config option. > +extern void debug_vm_pgtable(void); Please don't use the 'extern' keyword, it is useless and not to be used for functions declaration. > +#else > +static inline void debug_vm_pgtable(void) { } > +#endif > + > #endif /* !__ASSEMBLY__ */ > > #ifndef io_remap_pfn_range > diff --git a/init/main.c b/init/main.c > index da1bc0b60a7d..5e59e6ac0780 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -1197,6 +1197,7 @@ static noinline void __init kernel_init_freeable(void) > sched_init_smp(); > > page_alloc_init_late(); > + debug_vm_pgtable(); Wouldn't it be better to call debug_vm_pgtable() in kernel_init() between the call to async_synchronise_full() and ftrace_free_init_mem() ? > /* Initialize page ext after all struct pages are initialized. */ > page_ext_init(); > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 5ffe144c9794..7cceae923c05 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -653,6 +653,12 @@ config SCHED_STACK_END_CHECK > data corruption or a sporadic crash at a later stage once the region > is examined. The runtime overhead introduced is minimal. > > +config ARCH_HAS_DEBUG_VM_PGTABLE > + bool > + help > + An architecture should select this when it can successfully > + build and run DEBUG_VM_PGTABLE. > + > config DEBUG_VM > bool "Debug VM" > depends on DEBUG_KERNEL > @@ -688,6 +694,22 @@ config DEBUG_VM_PGFLAGS > > If unsure, say N. > > +config DEBUG_VM_PGTABLE > + bool "Debug arch page table for semantics compliance" > + depends on MMU > + depends on DEBUG_VM Does it really need to depend on DEBUG_VM ? I think we could make it standalone and 'default y if DEBUG_VM' instead. > + depends on ARCH_HAS_DEBUG_VM_PGTABLE > + default y > + help > + This option provides a debug method which can be used to test > + architecture page table helper functions on various platforms in > + verifying if they comply with expected generic MM semantics. This > + will help architecture code in making sure that any changes or > + new additions of these helpers still conform to expected > + semantics of the generic MM. > + > + If unsure, say N. > + Does it make sense to make it 'default y' and say 'If unsure, say N' ? > config ARCH_HAS_DEBUG_VIRTUAL > bool > Christophe 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=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable 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 8A8E2C2D0DB for ; Tue, 28 Jan 2020 17:07:57 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (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 03D79214D8 for ; Tue, 28 Jan 2020 17:07:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=c-s.fr header.i=@c-s.fr header.b="NyfqsIb0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 03D79214D8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=c-s.fr Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 486Y2y2mfDzDqMg for ; Wed, 29 Jan 2020 04:07:54 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=c-s.fr (client-ip=93.17.236.30; helo=pegase1.c-s.fr; envelope-from=christophe.leroy@c-s.fr; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=c-s.fr Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=c-s.fr header.i=@c-s.fr header.a=rsa-sha256 header.s=mail header.b=NyfqsIb0; dkim-atps=neutral Received: from pegase1.c-s.fr (pegase1.c-s.fr [93.17.236.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 486Y0W5d5LzDqKf for ; Wed, 29 Jan 2020 04:05:45 +1100 (AEDT) Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 486Y0M18SRz9tyrg; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=NyfqsIb0; dkim-adsp=pass; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id BxhrHtxf1fJY; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 486Y0L6ltRz9tyrf; Tue, 28 Jan 2020 18:05:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1580231138; bh=ihfPCvoS5mhssdU/CWQGRQyoTkFqbnCSL7XYZpDWBBI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=NyfqsIb0WYfGkwwRXCi4mviBXVht5035XRkQEUMkYVrK+kvXsqyC01Ge/84pDXico JiX6P4e/rd1XwHKFdfUYAulUl8Bab7lOcDCfWoS6b7lkyqkPzcXggxczTjMouWp1w8 BakNDUS9X1lr5teDKcou4UiSzbqUTfYKRsLhysmw= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 775F08B7E7; Tue, 28 Jan 2020 18:05:40 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 34jfQVcpYhXe; Tue, 28 Jan 2020 18:05:40 +0100 (CET) Received: from [192.168.4.90] (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AE28C8B7E6; Tue, 28 Jan 2020 18:05:37 +0100 (CET) Subject: Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers To: Anshuman Khandual , linux-mm@kvack.org References: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> From: Christophe Leroy Message-ID: <68ed6488-aa25-ab41-8da6-f0ddeb15d52b@c-s.fr> Date: Tue, 28 Jan 2020 18:05:37 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Peter Zijlstra , James Hogan , Heiko Carstens , Michal Hocko , Dave Hansen , Paul Mackerras , sparclinux@vger.kernel.org, Thomas Gleixner , linux-s390@vger.kernel.org, Jason Gunthorpe , x86@kernel.org, Russell King - ARM Linux , Matthew Wilcox , Steven Price , Tetsuo Handa , Gerald Schaefer , linux-snps-arc@lists.infradead.org, Ingo Molnar , Kees Cook , Masahiro Yamada , Mark Brown , "Kirill A . Shutemov" , Dan Williams , Vlastimil Babka , linux-arm-kernel@lists.infradead.org, Sri Krishna chowdary , Ard Biesheuvel , Greg Kroah-Hartman , linux-mips@vger.kernel.org, Ralf Baechle , linux-kernel@vger.kernel.org, Paul Burton , Mike Rapoport , Vineet Gupta , Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Le 28/01/2020 à 02:27, Anshuman Khandual a écrit : > This adds tests which will validate architecture page table helpers and > other accessors in their compliance with expected generic MM semantics. > This will help various architectures in validating changes to existing > page table helpers or addition of new ones. > > This test covers basic page table entry transformations including but not > limited to old, young, dirty, clean, write, write protect etc at various > level along with populating intermediate entries with next page table page > and validating them. > > Test page table pages are allocated from system memory with required size > and alignments. The mapped pfns at page table levels are derived from a > real pfn representing a valid kernel text symbol. This test gets called > right after page_alloc_init_late(). > > This gets build and run when CONFIG_DEBUG_VM_PGTABLE is selected along with > CONFIG_VM_DEBUG. Architectures willing to subscribe this test also need to > select CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE which for now is limited to x86 and > arm64. Going forward, other architectures too can enable this after fixing > build or runtime problems (if any) with their page table helpers. > > Folks interested in making sure that a given platform's page table helpers > conform to expected generic MM semantics should enable the above config > which will just trigger this test during boot. Any non conformity here will > be reported as an warning which would need to be fixed. This test will help > catch any changes to the agreed upon semantics expected from generic MM and > enable platforms to accommodate it thereafter. > [...] > > Tested-by: Christophe Leroy #PPC32 Also tested on PPC64 (under QEMU): book3s/64 64k pages, book3s/64 4k pages and book3e/64 > Reviewed-by: Ingo Molnar > Suggested-by: Catalin Marinas > Signed-off-by: Andrew Morton > Signed-off-by: Christophe Leroy > Signed-off-by: Anshuman Khandual > --- [...] > > diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > new file mode 100644 > index 000000000000..f3f8111edbe3 > --- /dev/null > +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt > @@ -0,0 +1,35 @@ > +# > +# Feature name: debug-vm-pgtable > +# Kconfig: ARCH_HAS_DEBUG_VM_PGTABLE > +# description: arch supports pgtable tests for semantics compliance > +# > + ----------------------- > + | arch |status| > + ----------------------- > + | alpha: | TODO | > + | arc: | ok | > + | arm: | TODO | > + | arm64: | ok | > + | c6x: | TODO | > + | csky: | TODO | > + | h8300: | TODO | > + | hexagon: | TODO | > + | ia64: | TODO | > + | m68k: | TODO | > + | microblaze: | TODO | > + | mips: | TODO | > + | nds32: | TODO | > + | nios2: | TODO | > + | openrisc: | TODO | > + | parisc: | TODO | > + | powerpc/32: | ok | > + | powerpc/64: | TODO | You can change the two above lines by powerpc: ok > + | riscv: | TODO | > + | s390: | TODO | > + | sh: | TODO | > + | sparc: | TODO | > + | um: | TODO | > + | unicore32: | TODO | > + | x86: | ok | > + | xtensa: | TODO | > + ----------------------- > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 1ec34e16ed65..253dcab0bebc 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -120,6 +120,7 @@ config PPC > # > select ARCH_32BIT_OFF_T if PPC32 > select ARCH_HAS_DEBUG_VIRTUAL > + select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32 Remove the 'if PPC32' as we now know it also work on PPC64. > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FORTIFY_SOURCE > diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h > index 0b6c4042942a..fb0e76d254b3 100644 > --- a/arch/x86/include/asm/pgtable_64.h > +++ b/arch/x86/include/asm/pgtable_64.h > @@ -53,6 +53,12 @@ static inline void sync_initial_page_table(void) { } > > struct mm_struct; > > +#define mm_p4d_folded mm_p4d_folded > +static inline bool mm_p4d_folded(struct mm_struct *mm) > +{ > + return !pgtable_l5_enabled(); > +} > + For me this should be part of another patch, it is not directly linked to the tests. > void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte); > void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); > > diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h > index 798ea36a0549..e0b04787e789 100644 > --- a/include/asm-generic/pgtable.h > +++ b/include/asm-generic/pgtable.h > @@ -1208,6 +1208,12 @@ static inline bool arch_has_pfn_modify_check(void) > # define PAGE_KERNEL_EXEC PAGE_KERNEL > #endif > > +#ifdef CONFIG_DEBUG_VM_PGTABLE Not sure it is a good idea to put that in include/asm-generic/pgtable.h By doing this you are forcing a rebuild of almost all files, whereas only init/main.o and mm/debug_vm_pgtable.o should be rebuilt when activating this config option. > +extern void debug_vm_pgtable(void); Please don't use the 'extern' keyword, it is useless and not to be used for functions declaration. > +#else > +static inline void debug_vm_pgtable(void) { } > +#endif > + > #endif /* !__ASSEMBLY__ */ > > #ifndef io_remap_pfn_range > diff --git a/init/main.c b/init/main.c > index da1bc0b60a7d..5e59e6ac0780 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -1197,6 +1197,7 @@ static noinline void __init kernel_init_freeable(void) > sched_init_smp(); > > page_alloc_init_late(); > + debug_vm_pgtable(); Wouldn't it be better to call debug_vm_pgtable() in kernel_init() between the call to async_synchronise_full() and ftrace_free_init_mem() ? > /* Initialize page ext after all struct pages are initialized. */ > page_ext_init(); > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 5ffe144c9794..7cceae923c05 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -653,6 +653,12 @@ config SCHED_STACK_END_CHECK > data corruption or a sporadic crash at a later stage once the region > is examined. The runtime overhead introduced is minimal. > > +config ARCH_HAS_DEBUG_VM_PGTABLE > + bool > + help > + An architecture should select this when it can successfully > + build and run DEBUG_VM_PGTABLE. > + > config DEBUG_VM > bool "Debug VM" > depends on DEBUG_KERNEL > @@ -688,6 +694,22 @@ config DEBUG_VM_PGFLAGS > > If unsure, say N. > > +config DEBUG_VM_PGTABLE > + bool "Debug arch page table for semantics compliance" > + depends on MMU > + depends on DEBUG_VM Does it really need to depend on DEBUG_VM ? I think we could make it standalone and 'default y if DEBUG_VM' instead. > + depends on ARCH_HAS_DEBUG_VM_PGTABLE > + default y > + help > + This option provides a debug method which can be used to test > + architecture page table helper functions on various platforms in > + verifying if they comply with expected generic MM semantics. This > + will help architecture code in making sure that any changes or > + new additions of these helpers still conform to expected > + semantics of the generic MM. > + > + If unsure, say N. > + Does it make sense to make it 'default y' and say 'If unsure, say N' ? > config ARCH_HAS_DEBUG_VIRTUAL > bool > Christophe 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=-5.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_DBL_ABUSE_MALW,USER_AGENT_SANE_1 autolearn=unavailable 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 ACBC6C2D0DB for ; Tue, 28 Jan 2020 17:06:00 +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 76A9020663 for ; Tue, 28 Jan 2020 17:06:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Iy7pifSU"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=c-s.fr header.i=@c-s.fr header.b="NyfqsIb0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 76A9020663 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=c-s.fr Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-snps-arc-bounces+linux-snps-arc=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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EhH8/45LUsIFyZtMkv8WKKR/nF8OEnBURqWxzWRMHvA=; b=Iy7pifSUXn/Uk3HIYNJxcuvSb snkKYB9U9hTJlrn8uWKP49r5SqM6JWY7ni+v4i4hJ4uehyfjh6jUjM2wYxofh7IrD97zJkpSVzDOj HZ9UqVtqzB31rbkObwTbjwq/V5/g4x9GqekrsTYtws8xE3dFt8EOYpQAknV8ttoBjsB81RjPrUMff FZrdzP/JXlSjRZvq9NvzosUrPX+rO4HCvfIVJbY90UzgtfN+Fp4t7DbLcJIGhH9Xx0VbmmCx0E8/g rlRjNoQvItqFHS4Ptezfx/Q0rA1KVx1PK35OFu2eDXA2LYudRsJf/zSNo396JUqSox+9kEVer7Atw l3wyIpHew==; 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 1iwUJL-0001dV-60; Tue, 28 Jan 2020 17:05:59 +0000 Received: from pegase1.c-s.fr ([93.17.236.30]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwUJ9-0001U4-P5; Tue, 28 Jan 2020 17:05:49 +0000 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 486Y0M18SRz9tyrg; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=NyfqsIb0; dkim-adsp=pass; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id BxhrHtxf1fJY; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 486Y0L6ltRz9tyrf; Tue, 28 Jan 2020 18:05:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1580231138; bh=ihfPCvoS5mhssdU/CWQGRQyoTkFqbnCSL7XYZpDWBBI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=NyfqsIb0WYfGkwwRXCi4mviBXVht5035XRkQEUMkYVrK+kvXsqyC01Ge/84pDXico JiX6P4e/rd1XwHKFdfUYAulUl8Bab7lOcDCfWoS6b7lkyqkPzcXggxczTjMouWp1w8 BakNDUS9X1lr5teDKcou4UiSzbqUTfYKRsLhysmw= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 775F08B7E7; Tue, 28 Jan 2020 18:05:40 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 34jfQVcpYhXe; Tue, 28 Jan 2020 18:05:40 +0100 (CET) Received: from [192.168.4.90] (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AE28C8B7E6; Tue, 28 Jan 2020 18:05:37 +0100 (CET) Subject: Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers To: Anshuman Khandual , linux-mm@kvack.org References: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> From: Christophe Leroy Message-ID: <68ed6488-aa25-ab41-8da6-f0ddeb15d52b@c-s.fr> Date: Tue, 28 Jan 2020 18:05:37 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> Content-Language: fr X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200128_090548_112376_53813601 X-CRM114-Status: GOOD ( 29.80 ) X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Peter Zijlstra , James Hogan , Heiko Carstens , Michal Hocko , Dave Hansen , Paul Mackerras , sparclinux@vger.kernel.org, Thomas Gleixner , linux-s390@vger.kernel.org, Jason Gunthorpe , Michael Ellerman , x86@kernel.org, Russell King - ARM Linux , Matthew Wilcox , Steven Price , Tetsuo Handa , Gerald Schaefer , linux-snps-arc@lists.infradead.org, Ingo Molnar , Kees Cook , Masahiro Yamada , Mark Brown , "Kirill A . Shutemov" , Dan Williams , Vlastimil Babka , linux-arm-kernel@lists.infradead.org, Sri Krishna chowdary , Ard Biesheuvel , Greg Kroah-Hartman , linux-mips@vger.kernel.org, Ralf Baechle , linux-kernel@vger.kernel.org, Paul Burton , Mike Rapoport , Vineet Gupta , Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+linux-snps-arc=archiver.kernel.org@lists.infradead.org CgpMZSAyOC8wMS8yMDIwIMOgIDAyOjI3LCBBbnNodW1hbiBLaGFuZHVhbCBhIMOpY3JpdMKgOgo+ IFRoaXMgYWRkcyB0ZXN0cyB3aGljaCB3aWxsIHZhbGlkYXRlIGFyY2hpdGVjdHVyZSBwYWdlIHRh YmxlIGhlbHBlcnMgYW5kCj4gb3RoZXIgYWNjZXNzb3JzIGluIHRoZWlyIGNvbXBsaWFuY2Ugd2l0 aCBleHBlY3RlZCBnZW5lcmljIE1NIHNlbWFudGljcy4KPiBUaGlzIHdpbGwgaGVscCB2YXJpb3Vz IGFyY2hpdGVjdHVyZXMgaW4gdmFsaWRhdGluZyBjaGFuZ2VzIHRvIGV4aXN0aW5nCj4gcGFnZSB0 YWJsZSBoZWxwZXJzIG9yIGFkZGl0aW9uIG9mIG5ldyBvbmVzLgo+IAo+IFRoaXMgdGVzdCBjb3Zl cnMgYmFzaWMgcGFnZSB0YWJsZSBlbnRyeSB0cmFuc2Zvcm1hdGlvbnMgaW5jbHVkaW5nIGJ1dCBu b3QKPiBsaW1pdGVkIHRvIG9sZCwgeW91bmcsIGRpcnR5LCBjbGVhbiwgd3JpdGUsIHdyaXRlIHBy b3RlY3QgZXRjIGF0IHZhcmlvdXMKPiBsZXZlbCBhbG9uZyB3aXRoIHBvcHVsYXRpbmcgaW50ZXJt ZWRpYXRlIGVudHJpZXMgd2l0aCBuZXh0IHBhZ2UgdGFibGUgcGFnZQo+IGFuZCB2YWxpZGF0aW5n IHRoZW0uCj4gCj4gVGVzdCBwYWdlIHRhYmxlIHBhZ2VzIGFyZSBhbGxvY2F0ZWQgZnJvbSBzeXN0 ZW0gbWVtb3J5IHdpdGggcmVxdWlyZWQgc2l6ZQo+IGFuZCBhbGlnbm1lbnRzLiBUaGUgbWFwcGVk IHBmbnMgYXQgcGFnZSB0YWJsZSBsZXZlbHMgYXJlIGRlcml2ZWQgZnJvbSBhCj4gcmVhbCBwZm4g cmVwcmVzZW50aW5nIGEgdmFsaWQga2VybmVsIHRleHQgc3ltYm9sLiBUaGlzIHRlc3QgZ2V0cyBj YWxsZWQKPiByaWdodCBhZnRlciBwYWdlX2FsbG9jX2luaXRfbGF0ZSgpLgo+IAo+IFRoaXMgZ2V0 cyBidWlsZCBhbmQgcnVuIHdoZW4gQ09ORklHX0RFQlVHX1ZNX1BHVEFCTEUgaXMgc2VsZWN0ZWQg YWxvbmcgd2l0aAo+IENPTkZJR19WTV9ERUJVRy4gQXJjaGl0ZWN0dXJlcyB3aWxsaW5nIHRvIHN1 YnNjcmliZSB0aGlzIHRlc3QgYWxzbyBuZWVkIHRvCj4gc2VsZWN0IENPTkZJR19BUkNIX0hBU19E RUJVR19WTV9QR1RBQkxFIHdoaWNoIGZvciBub3cgaXMgbGltaXRlZCB0byB4ODYgYW5kCj4gYXJt NjQuIEdvaW5nIGZvcndhcmQsIG90aGVyIGFyY2hpdGVjdHVyZXMgdG9vIGNhbiBlbmFibGUgdGhp cyBhZnRlciBmaXhpbmcKPiBidWlsZCBvciBydW50aW1lIHByb2JsZW1zIChpZiBhbnkpIHdpdGgg dGhlaXIgcGFnZSB0YWJsZSBoZWxwZXJzLgo+IAo+IEZvbGtzIGludGVyZXN0ZWQgaW4gbWFraW5n IHN1cmUgdGhhdCBhIGdpdmVuIHBsYXRmb3JtJ3MgcGFnZSB0YWJsZSBoZWxwZXJzCj4gY29uZm9y bSB0byBleHBlY3RlZCBnZW5lcmljIE1NIHNlbWFudGljcyBzaG91bGQgZW5hYmxlIHRoZSBhYm92 ZSBjb25maWcKPiB3aGljaCB3aWxsIGp1c3QgdHJpZ2dlciB0aGlzIHRlc3QgZHVyaW5nIGJvb3Qu IEFueSBub24gY29uZm9ybWl0eSBoZXJlIHdpbGwKPiBiZSByZXBvcnRlZCBhcyBhbiB3YXJuaW5n IHdoaWNoIHdvdWxkIG5lZWQgdG8gYmUgZml4ZWQuIFRoaXMgdGVzdCB3aWxsIGhlbHAKPiBjYXRj aCBhbnkgY2hhbmdlcyB0byB0aGUgYWdyZWVkIHVwb24gc2VtYW50aWNzIGV4cGVjdGVkIGZyb20g Z2VuZXJpYyBNTSBhbmQKPiBlbmFibGUgcGxhdGZvcm1zIHRvIGFjY29tbW9kYXRlIGl0IHRoZXJl YWZ0ZXIuCj4gCgpbLi4uXQoKPiAKPiBUZXN0ZWQtYnk6IENocmlzdG9waGUgTGVyb3kgPGNocmlz dG9waGUubGVyb3lAYy1zLmZyPgkJI1BQQzMyCgpBbHNvIHRlc3RlZCBvbiBQUEM2NCAodW5kZXIg UUVNVSk6IGJvb2szcy82NCA2NGsgcGFnZXMsIGJvb2szcy82NCA0ayAKcGFnZXMgYW5kIGJvb2sz ZS82NAoKPiBSZXZpZXdlZC1ieTogSW5nbyBNb2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+Cj4gU3Vn Z2VzdGVkLWJ5OiBDYXRhbGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPgo+IFNp Z25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+Cj4g U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZSBMZXJveSA8Y2hyaXN0b3BoZS5sZXJveUBjLXMuZnI+ Cj4gU2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gS2hhbmR1YWwgPGFuc2h1bWFuLmtoYW5kdWFsQGFy bS5jb20+Cj4gLS0tCgpbLi4uXQoKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9mZWF0 dXJlcy9kZWJ1Zy9kZWJ1Zy12bS1wZ3RhYmxlL2FyY2gtc3VwcG9ydC50eHQgYi9Eb2N1bWVudGF0 aW9uL2ZlYXR1cmVzL2RlYnVnL2RlYnVnLXZtLXBndGFibGUvYXJjaC1zdXBwb3J0LnR4dAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5mM2Y4MTExZWRiZTMKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlcy9kZWJ1Zy9kZWJ1Zy12 bS1wZ3RhYmxlL2FyY2gtc3VwcG9ydC50eHQKPiBAQCAtMCwwICsxLDM1IEBACj4gKyMKPiArIyBG ZWF0dXJlIG5hbWU6ICAgICAgICAgIGRlYnVnLXZtLXBndGFibGUKPiArIyAgICAgICAgIEtjb25m aWc6ICAgICAgIEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUKPiArIyAgICAgICAgIGRlc2NyaXB0 aW9uOiAgIGFyY2ggc3VwcG9ydHMgcGd0YWJsZSB0ZXN0cyBmb3Igc2VtYW50aWNzIGNvbXBsaWFu Y2UKPiArIwo+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICAgIHwgICAgICAgICBh cmNoIHxzdGF0dXN8Cj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgICAgfCAgICAg ICBhbHBoYTogfCBUT0RPIHwKPiArICAgIHwgICAgICAgICBhcmM6IHwgIG9rICB8Cj4gKyAgICB8 ICAgICAgICAgYXJtOiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICBhcm02NDogfCAgb2sgIHwKPiAr ICAgIHwgICAgICAgICBjNng6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAgICBjc2t5OiB8IFRPRE8g fAo+ICsgICAgfCAgICAgICBoODMwMDogfCBUT0RPIHwKPiArICAgIHwgICAgIGhleGFnb246IHwg VE9ETyB8Cj4gKyAgICB8ICAgICAgICBpYTY0OiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICAgbTY4 azogfCBUT0RPIHwKPiArICAgIHwgIG1pY3JvYmxhemU6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAg ICBtaXBzOiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICBuZHMzMjogfCBUT0RPIHwKPiArICAgIHwg ICAgICAgbmlvczI6IHwgVE9ETyB8Cj4gKyAgICB8ICAgIG9wZW5yaXNjOiB8IFRPRE8gfAo+ICsg ICAgfCAgICAgIHBhcmlzYzogfCBUT0RPIHwKPiArICAgIHwgIHBvd2VycGMvMzI6IHwgIG9rICB8 Cj4gKyAgICB8ICBwb3dlcnBjLzY0OiB8IFRPRE8gfAoKWW91IGNhbiBjaGFuZ2UgdGhlIHR3byBh Ym92ZSBsaW5lcyBieQoKCXBvd2VycGM6IG9rCgo+ICsgICAgfCAgICAgICByaXNjdjogfCBUT0RP IHwKPiArICAgIHwgICAgICAgIHMzOTA6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAgICAgIHNoOiB8 IFRPRE8gfAo+ICsgICAgfCAgICAgICBzcGFyYzogfCBUT0RPIHwKPiArICAgIHwgICAgICAgICAg dW06IHwgVE9ETyB8Cj4gKyAgICB8ICAgdW5pY29yZTMyOiB8IFRPRE8gfAo+ICsgICAgfCAgICAg ICAgIHg4NjogfCAgb2sgIHwKPiArICAgIHwgICAgICB4dGVuc2E6IHwgVE9ETyB8Cj4gKyAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL0tjb25m aWcgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwo+IGluZGV4IDFlYzM0ZTE2ZWQ2NS4uMjUzZGNhYjBi ZWJjIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9LY29uZmlnCj4gKysrIGIvYXJjaC9wb3dl cnBjL0tjb25maWcKPiBAQCAtMTIwLDYgKzEyMCw3IEBAIGNvbmZpZyBQUEMKPiAgIAkjCj4gICAJ c2VsZWN0IEFSQ0hfMzJCSVRfT0ZGX1QgaWYgUFBDMzIKPiAgIAlzZWxlY3QgQVJDSF9IQVNfREVC VUdfVklSVFVBTAo+ICsJc2VsZWN0IEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUgaWYgUFBDMzIK ClJlbW92ZSB0aGUgJ2lmIFBQQzMyJyBhcyB3ZSBub3cga25vdyBpdCBhbHNvIHdvcmsgb24gUFBD NjQuCgo+ICAgCXNlbGVjdCBBUkNIX0hBU19ERVZNRU1fSVNfQUxMT1dFRAo+ICAgCXNlbGVjdCBB UkNIX0hBU19FTEZfUkFORE9NSVpFCj4gICAJc2VsZWN0IEFSQ0hfSEFTX0ZPUlRJRllfU09VUkNF Cgo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKPiBpbmRleCAwYjZjNDA0Mjk0MmEuLmZiMGU3 NmQyNTRiMyAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgK PiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKPiBAQCAtNTMsNiArNTMs MTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHN5bmNfaW5pdGlhbF9wYWdlX3RhYmxlKHZvaWQpIHsg fQo+ICAgCj4gICBzdHJ1Y3QgbW1fc3RydWN0Owo+ICAgCj4gKyNkZWZpbmUgbW1fcDRkX2ZvbGRl ZCBtbV9wNGRfZm9sZGVkCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBtbV9wNGRfZm9sZGVkKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tKQo+ICt7Cj4gKwlyZXR1cm4gIXBndGFibGVfbDVfZW5hYmxlZCgpOwo+ ICt9Cj4gKwoKRm9yIG1lIHRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgYW5vdGhlciBwYXRjaCwgaXQg aXMgbm90IGRpcmVjdGx5IGxpbmtlZCAKdG8gdGhlIHRlc3RzLgoKPiAgIHZvaWQgc2V0X3B0ZV92 YWRkcl9wNGQocDRkX3QgKnA0ZF9wYWdlLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdf cHRlKTsKPiAgIHZvaWQgc2V0X3B0ZV92YWRkcl9wdWQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25l ZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdfcHRlKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2FzbS1nZW5lcmljL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCj4g aW5kZXggNzk4ZWEzNmEwNTQ5Li5lMGIwNDc4N2U3ODkgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9h c20tZ2VuZXJpYy9wZ3RhYmxlLmgKPiArKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUu aAo+IEBAIC0xMjA4LDYgKzEyMDgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGFyY2hfaGFzX3Bm bl9tb2RpZnlfY2hlY2sodm9pZCkKPiAgICMgZGVmaW5lIFBBR0VfS0VSTkVMX0VYRUMgUEFHRV9L RVJORUwKPiAgICNlbmRpZgo+ICAgCj4gKyNpZmRlZiBDT05GSUdfREVCVUdfVk1fUEdUQUJMRQoK Tm90IHN1cmUgaXQgaXMgYSBnb29kIGlkZWEgdG8gcHV0IHRoYXQgaW4gaW5jbHVkZS9hc20tZ2Vu ZXJpYy9wZ3RhYmxlLmgKCkJ5IGRvaW5nIHRoaXMgeW91IGFyZSBmb3JjaW5nIGEgcmVidWlsZCBv ZiBhbG1vc3QgYWxsIGZpbGVzLCB3aGVyZWFzIApvbmx5IGluaXQvbWFpbi5vIGFuZCBtbS9kZWJ1 Z192bV9wZ3RhYmxlLm8gc2hvdWxkIGJlIHJlYnVpbHQgd2hlbiAKYWN0aXZhdGluZyB0aGlzIGNv bmZpZyBvcHRpb24uCgo+ICtleHRlcm4gdm9pZCBkZWJ1Z192bV9wZ3RhYmxlKHZvaWQpOwoKUGxl YXNlIGRvbid0IHVzZSB0aGUgJ2V4dGVybicga2V5d29yZCwgaXQgaXMgdXNlbGVzcyBhbmQgbm90 IHRvIGJlIHVzZWQgCmZvciBmdW5jdGlvbnMgZGVjbGFyYXRpb24uCgo+ICsjZWxzZQo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgZGVidWdfdm1fcGd0YWJsZSh2b2lkKSB7IH0KPiArI2VuZGlmCj4gKwo+ ICAgI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KPiAgIAo+ICAgI2lmbmRlZiBpb19yZW1hcF9w Zm5fcmFuZ2UKPiBkaWZmIC0tZ2l0IGEvaW5pdC9tYWluLmMgYi9pbml0L21haW4uYwo+IGluZGV4 IGRhMWJjMGI2MGE3ZC4uNWU1OWU2YWMwNzgwIDEwMDY0NAo+IC0tLSBhL2luaXQvbWFpbi5jCj4g KysrIGIvaW5pdC9tYWluLmMKPiBAQCAtMTE5Nyw2ICsxMTk3LDcgQEAgc3RhdGljIG5vaW5saW5l IHZvaWQgX19pbml0IGtlcm5lbF9pbml0X2ZyZWVhYmxlKHZvaWQpCj4gICAJc2NoZWRfaW5pdF9z bXAoKTsKPiAgIAo+ICAgCXBhZ2VfYWxsb2NfaW5pdF9sYXRlKCk7Cj4gKwlkZWJ1Z192bV9wZ3Rh YmxlKCk7CgpXb3VsZG4ndCBpdCBiZSBiZXR0ZXIgdG8gY2FsbCBkZWJ1Z192bV9wZ3RhYmxlKCkg aW4ga2VybmVsX2luaXQoKSAKYmV0d2VlbiB0aGUgY2FsbCB0byBhc3luY19zeW5jaHJvbmlzZV9m dWxsKCkgYW5kIGZ0cmFjZV9mcmVlX2luaXRfbWVtKCkgPwoKPiAgIAkvKiBJbml0aWFsaXplIHBh Z2UgZXh0IGFmdGVyIGFsbCBzdHJ1Y3QgcGFnZXMgYXJlIGluaXRpYWxpemVkLiAqLwo+ICAgCXBh Z2VfZXh0X2luaXQoKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9saWIvS2NvbmZpZy5kZWJ1ZyBiL2xp Yi9LY29uZmlnLmRlYnVnCj4gaW5kZXggNWZmZTE0NGM5Nzk0Li43Y2NlYWU5MjNjMDUgMTAwNjQ0 Cj4gLS0tIGEvbGliL0tjb25maWcuZGVidWcKPiArKysgYi9saWIvS2NvbmZpZy5kZWJ1Zwo+IEBA IC02NTMsNiArNjUzLDEyIEBAIGNvbmZpZyBTQ0hFRF9TVEFDS19FTkRfQ0hFQ0sKPiAgIAkgIGRh dGEgY29ycnVwdGlvbiBvciBhIHNwb3JhZGljIGNyYXNoIGF0IGEgbGF0ZXIgc3RhZ2Ugb25jZSB0 aGUgcmVnaW9uCj4gICAJICBpcyBleGFtaW5lZC4gVGhlIHJ1bnRpbWUgb3ZlcmhlYWQgaW50cm9k dWNlZCBpcyBtaW5pbWFsLgo+ICAgCj4gK2NvbmZpZyBBUkNIX0hBU19ERUJVR19WTV9QR1RBQkxF Cj4gKwlib29sCj4gKwloZWxwCj4gKwkgIEFuIGFyY2hpdGVjdHVyZSBzaG91bGQgc2VsZWN0IHRo aXMgd2hlbiBpdCBjYW4gc3VjY2Vzc2Z1bGx5Cj4gKwkgIGJ1aWxkIGFuZCBydW4gREVCVUdfVk1f UEdUQUJMRS4KPiArCj4gICBjb25maWcgREVCVUdfVk0KPiAgIAlib29sICJEZWJ1ZyBWTSIKPiAg IAlkZXBlbmRzIG9uIERFQlVHX0tFUk5FTAo+IEBAIC02ODgsNiArNjk0LDIyIEBAIGNvbmZpZyBE RUJVR19WTV9QR0ZMQUdTCj4gICAKPiAgIAkgIElmIHVuc3VyZSwgc2F5IE4uCj4gICAKPiArY29u ZmlnIERFQlVHX1ZNX1BHVEFCTEUKPiArCWJvb2wgIkRlYnVnIGFyY2ggcGFnZSB0YWJsZSBmb3Ig c2VtYW50aWNzIGNvbXBsaWFuY2UiCj4gKwlkZXBlbmRzIG9uIE1NVQo+ICsJZGVwZW5kcyBvbiBE RUJVR19WTQoKRG9lcyBpdCByZWFsbHkgbmVlZCB0byBkZXBlbmQgb24gREVCVUdfVk0gPwpJIHRo aW5rIHdlIGNvdWxkIG1ha2UgaXQgc3RhbmRhbG9uZSBhbmQgJ2RlZmF1bHQgeSBpZiBERUJVR19W TScgaW5zdGVhZC4KCj4gKwlkZXBlbmRzIG9uIEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUKPiAr CWRlZmF1bHQgeQo+ICsJaGVscAo+ICsJICBUaGlzIG9wdGlvbiBwcm92aWRlcyBhIGRlYnVnIG1l dGhvZCB3aGljaCBjYW4gYmUgdXNlZCB0byB0ZXN0Cj4gKwkgIGFyY2hpdGVjdHVyZSBwYWdlIHRh YmxlIGhlbHBlciBmdW5jdGlvbnMgb24gdmFyaW91cyBwbGF0Zm9ybXMgaW4KPiArCSAgdmVyaWZ5 aW5nIGlmIHRoZXkgY29tcGx5IHdpdGggZXhwZWN0ZWQgZ2VuZXJpYyBNTSBzZW1hbnRpY3MuIFRo aXMKPiArCSAgd2lsbCBoZWxwIGFyY2hpdGVjdHVyZSBjb2RlIGluIG1ha2luZyBzdXJlIHRoYXQg YW55IGNoYW5nZXMgb3IKPiArCSAgbmV3IGFkZGl0aW9ucyBvZiB0aGVzZSBoZWxwZXJzIHN0aWxs IGNvbmZvcm0gdG8gZXhwZWN0ZWQKPiArCSAgc2VtYW50aWNzIG9mIHRoZSBnZW5lcmljIE1NLgo+ ICsKPiArCSAgSWYgdW5zdXJlLCBzYXkgTi4KPiArCgpEb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gbWFr ZSBpdCAnZGVmYXVsdCB5JyBhbmQgc2F5ICdJZiB1bnN1cmUsIHNheSBOJyA/Cgo+ICAgY29uZmln IEFSQ0hfSEFTX0RFQlVHX1ZJUlRVQUwKPiAgIAlib29sCj4gICAKCkNocmlzdG9waGUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXNucHMtYXJj IG1haWxpbmcgbGlzdApsaW51eC1zbnBzLWFyY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtc25wcy1hcmMK 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=-5.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_DBL_ABUSE_MALW,USER_AGENT_SANE_1 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 A34CFC2D0DB for ; Tue, 28 Jan 2020 17:05:54 +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 75DC920663 for ; Tue, 28 Jan 2020 17:05:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ipIs5/kX"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=c-s.fr header.i=@c-s.fr header.b="NyfqsIb0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 75DC920663 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=c-s.fr 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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Jdw75SWfkKV26pjB6UTl7rb0WJAdNUOOqDjtsGmG5nA=; b=ipIs5/kXgGUNw3HuwIu0Rt6Cc PAzizXPaozOKp57YVlEUc4Eq3YeYdcfiAT2xfbCv77fxrLz4atl85gbz479OClGun0OShaB2LFYOW dv+AtlhjINrScEtZ8H5DyZZ8ET3VRHm1AOckdkZXnKVUqAVoi27j8mDUBb87XTTE2/naSke2tndy7 hYIuj7jT74GdcCXCWVJoAYlDhG/gqFHRTl6EsNWOt8LnHMFV5TFw3JHRDLSUg1A67w+wNZ54oWA89 vfAOWLlxG056wlcjaUoCA39lJWnlCvBcG1T/LtkE2A0ZHGd6AY5T5J7vrfZCkZgwqwTwid9Sxytht /RDBus0bQ==; 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 1iwUJD-0001V4-Hj; Tue, 28 Jan 2020 17:05:51 +0000 Received: from pegase1.c-s.fr ([93.17.236.30]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwUJ9-0001U4-P5; Tue, 28 Jan 2020 17:05:49 +0000 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 486Y0M18SRz9tyrg; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=NyfqsIb0; dkim-adsp=pass; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id BxhrHtxf1fJY; Tue, 28 Jan 2020 18:05:39 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 486Y0L6ltRz9tyrf; Tue, 28 Jan 2020 18:05:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1580231138; bh=ihfPCvoS5mhssdU/CWQGRQyoTkFqbnCSL7XYZpDWBBI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=NyfqsIb0WYfGkwwRXCi4mviBXVht5035XRkQEUMkYVrK+kvXsqyC01Ge/84pDXico JiX6P4e/rd1XwHKFdfUYAulUl8Bab7lOcDCfWoS6b7lkyqkPzcXggxczTjMouWp1w8 BakNDUS9X1lr5teDKcou4UiSzbqUTfYKRsLhysmw= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 775F08B7E7; Tue, 28 Jan 2020 18:05:40 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 34jfQVcpYhXe; Tue, 28 Jan 2020 18:05:40 +0100 (CET) Received: from [192.168.4.90] (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AE28C8B7E6; Tue, 28 Jan 2020 18:05:37 +0100 (CET) Subject: Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers To: Anshuman Khandual , linux-mm@kvack.org References: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> From: Christophe Leroy Message-ID: <68ed6488-aa25-ab41-8da6-f0ddeb15d52b@c-s.fr> Date: Tue, 28 Jan 2020 18:05:37 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <1580174873-18117-1-git-send-email-anshuman.khandual@arm.com> Content-Language: fr X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200128_090548_112376_53813601 X-CRM114-Status: GOOD ( 29.80 ) 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: Mark Rutland , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Peter Zijlstra , James Hogan , Heiko Carstens , Michal Hocko , Dave Hansen , Paul Mackerras , sparclinux@vger.kernel.org, Thomas Gleixner , linux-s390@vger.kernel.org, Jason Gunthorpe , Michael Ellerman , x86@kernel.org, Russell King - ARM Linux , Matthew Wilcox , Steven Price , Tetsuo Handa , Gerald Schaefer , linux-snps-arc@lists.infradead.org, Ingo Molnar , Kees Cook , Masahiro Yamada , Mark Brown , "Kirill A . Shutemov" , Dan Williams , Vlastimil Babka , linux-arm-kernel@lists.infradead.org, Sri Krishna chowdary , Ard Biesheuvel , Greg Kroah-Hartman , linux-mips@vger.kernel.org, Ralf Baechle , linux-kernel@vger.kernel.org, Paul Burton , Mike Rapoport , Vineet Gupta , Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpMZSAyOC8wMS8yMDIwIMOgIDAyOjI3LCBBbnNodW1hbiBLaGFuZHVhbCBhIMOpY3JpdMKgOgo+ IFRoaXMgYWRkcyB0ZXN0cyB3aGljaCB3aWxsIHZhbGlkYXRlIGFyY2hpdGVjdHVyZSBwYWdlIHRh YmxlIGhlbHBlcnMgYW5kCj4gb3RoZXIgYWNjZXNzb3JzIGluIHRoZWlyIGNvbXBsaWFuY2Ugd2l0 aCBleHBlY3RlZCBnZW5lcmljIE1NIHNlbWFudGljcy4KPiBUaGlzIHdpbGwgaGVscCB2YXJpb3Vz IGFyY2hpdGVjdHVyZXMgaW4gdmFsaWRhdGluZyBjaGFuZ2VzIHRvIGV4aXN0aW5nCj4gcGFnZSB0 YWJsZSBoZWxwZXJzIG9yIGFkZGl0aW9uIG9mIG5ldyBvbmVzLgo+IAo+IFRoaXMgdGVzdCBjb3Zl cnMgYmFzaWMgcGFnZSB0YWJsZSBlbnRyeSB0cmFuc2Zvcm1hdGlvbnMgaW5jbHVkaW5nIGJ1dCBu b3QKPiBsaW1pdGVkIHRvIG9sZCwgeW91bmcsIGRpcnR5LCBjbGVhbiwgd3JpdGUsIHdyaXRlIHBy b3RlY3QgZXRjIGF0IHZhcmlvdXMKPiBsZXZlbCBhbG9uZyB3aXRoIHBvcHVsYXRpbmcgaW50ZXJt ZWRpYXRlIGVudHJpZXMgd2l0aCBuZXh0IHBhZ2UgdGFibGUgcGFnZQo+IGFuZCB2YWxpZGF0aW5n IHRoZW0uCj4gCj4gVGVzdCBwYWdlIHRhYmxlIHBhZ2VzIGFyZSBhbGxvY2F0ZWQgZnJvbSBzeXN0 ZW0gbWVtb3J5IHdpdGggcmVxdWlyZWQgc2l6ZQo+IGFuZCBhbGlnbm1lbnRzLiBUaGUgbWFwcGVk IHBmbnMgYXQgcGFnZSB0YWJsZSBsZXZlbHMgYXJlIGRlcml2ZWQgZnJvbSBhCj4gcmVhbCBwZm4g cmVwcmVzZW50aW5nIGEgdmFsaWQga2VybmVsIHRleHQgc3ltYm9sLiBUaGlzIHRlc3QgZ2V0cyBj YWxsZWQKPiByaWdodCBhZnRlciBwYWdlX2FsbG9jX2luaXRfbGF0ZSgpLgo+IAo+IFRoaXMgZ2V0 cyBidWlsZCBhbmQgcnVuIHdoZW4gQ09ORklHX0RFQlVHX1ZNX1BHVEFCTEUgaXMgc2VsZWN0ZWQg YWxvbmcgd2l0aAo+IENPTkZJR19WTV9ERUJVRy4gQXJjaGl0ZWN0dXJlcyB3aWxsaW5nIHRvIHN1 YnNjcmliZSB0aGlzIHRlc3QgYWxzbyBuZWVkIHRvCj4gc2VsZWN0IENPTkZJR19BUkNIX0hBU19E RUJVR19WTV9QR1RBQkxFIHdoaWNoIGZvciBub3cgaXMgbGltaXRlZCB0byB4ODYgYW5kCj4gYXJt NjQuIEdvaW5nIGZvcndhcmQsIG90aGVyIGFyY2hpdGVjdHVyZXMgdG9vIGNhbiBlbmFibGUgdGhp cyBhZnRlciBmaXhpbmcKPiBidWlsZCBvciBydW50aW1lIHByb2JsZW1zIChpZiBhbnkpIHdpdGgg dGhlaXIgcGFnZSB0YWJsZSBoZWxwZXJzLgo+IAo+IEZvbGtzIGludGVyZXN0ZWQgaW4gbWFraW5n IHN1cmUgdGhhdCBhIGdpdmVuIHBsYXRmb3JtJ3MgcGFnZSB0YWJsZSBoZWxwZXJzCj4gY29uZm9y bSB0byBleHBlY3RlZCBnZW5lcmljIE1NIHNlbWFudGljcyBzaG91bGQgZW5hYmxlIHRoZSBhYm92 ZSBjb25maWcKPiB3aGljaCB3aWxsIGp1c3QgdHJpZ2dlciB0aGlzIHRlc3QgZHVyaW5nIGJvb3Qu IEFueSBub24gY29uZm9ybWl0eSBoZXJlIHdpbGwKPiBiZSByZXBvcnRlZCBhcyBhbiB3YXJuaW5n IHdoaWNoIHdvdWxkIG5lZWQgdG8gYmUgZml4ZWQuIFRoaXMgdGVzdCB3aWxsIGhlbHAKPiBjYXRj aCBhbnkgY2hhbmdlcyB0byB0aGUgYWdyZWVkIHVwb24gc2VtYW50aWNzIGV4cGVjdGVkIGZyb20g Z2VuZXJpYyBNTSBhbmQKPiBlbmFibGUgcGxhdGZvcm1zIHRvIGFjY29tbW9kYXRlIGl0IHRoZXJl YWZ0ZXIuCj4gCgpbLi4uXQoKPiAKPiBUZXN0ZWQtYnk6IENocmlzdG9waGUgTGVyb3kgPGNocmlz dG9waGUubGVyb3lAYy1zLmZyPgkJI1BQQzMyCgpBbHNvIHRlc3RlZCBvbiBQUEM2NCAodW5kZXIg UUVNVSk6IGJvb2szcy82NCA2NGsgcGFnZXMsIGJvb2szcy82NCA0ayAKcGFnZXMgYW5kIGJvb2sz ZS82NAoKPiBSZXZpZXdlZC1ieTogSW5nbyBNb2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+Cj4gU3Vn Z2VzdGVkLWJ5OiBDYXRhbGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPgo+IFNp Z25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+Cj4g U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZSBMZXJveSA8Y2hyaXN0b3BoZS5sZXJveUBjLXMuZnI+ Cj4gU2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gS2hhbmR1YWwgPGFuc2h1bWFuLmtoYW5kdWFsQGFy bS5jb20+Cj4gLS0tCgpbLi4uXQoKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9mZWF0 dXJlcy9kZWJ1Zy9kZWJ1Zy12bS1wZ3RhYmxlL2FyY2gtc3VwcG9ydC50eHQgYi9Eb2N1bWVudGF0 aW9uL2ZlYXR1cmVzL2RlYnVnL2RlYnVnLXZtLXBndGFibGUvYXJjaC1zdXBwb3J0LnR4dAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5mM2Y4MTExZWRiZTMKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlcy9kZWJ1Zy9kZWJ1Zy12 bS1wZ3RhYmxlL2FyY2gtc3VwcG9ydC50eHQKPiBAQCAtMCwwICsxLDM1IEBACj4gKyMKPiArIyBG ZWF0dXJlIG5hbWU6ICAgICAgICAgIGRlYnVnLXZtLXBndGFibGUKPiArIyAgICAgICAgIEtjb25m aWc6ICAgICAgIEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUKPiArIyAgICAgICAgIGRlc2NyaXB0 aW9uOiAgIGFyY2ggc3VwcG9ydHMgcGd0YWJsZSB0ZXN0cyBmb3Igc2VtYW50aWNzIGNvbXBsaWFu Y2UKPiArIwo+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICAgIHwgICAgICAgICBh cmNoIHxzdGF0dXN8Cj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgICAgfCAgICAg ICBhbHBoYTogfCBUT0RPIHwKPiArICAgIHwgICAgICAgICBhcmM6IHwgIG9rICB8Cj4gKyAgICB8 ICAgICAgICAgYXJtOiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICBhcm02NDogfCAgb2sgIHwKPiAr ICAgIHwgICAgICAgICBjNng6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAgICBjc2t5OiB8IFRPRE8g fAo+ICsgICAgfCAgICAgICBoODMwMDogfCBUT0RPIHwKPiArICAgIHwgICAgIGhleGFnb246IHwg VE9ETyB8Cj4gKyAgICB8ICAgICAgICBpYTY0OiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICAgbTY4 azogfCBUT0RPIHwKPiArICAgIHwgIG1pY3JvYmxhemU6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAg ICBtaXBzOiB8IFRPRE8gfAo+ICsgICAgfCAgICAgICBuZHMzMjogfCBUT0RPIHwKPiArICAgIHwg ICAgICAgbmlvczI6IHwgVE9ETyB8Cj4gKyAgICB8ICAgIG9wZW5yaXNjOiB8IFRPRE8gfAo+ICsg ICAgfCAgICAgIHBhcmlzYzogfCBUT0RPIHwKPiArICAgIHwgIHBvd2VycGMvMzI6IHwgIG9rICB8 Cj4gKyAgICB8ICBwb3dlcnBjLzY0OiB8IFRPRE8gfAoKWW91IGNhbiBjaGFuZ2UgdGhlIHR3byBh Ym92ZSBsaW5lcyBieQoKCXBvd2VycGM6IG9rCgo+ICsgICAgfCAgICAgICByaXNjdjogfCBUT0RP IHwKPiArICAgIHwgICAgICAgIHMzOTA6IHwgVE9ETyB8Cj4gKyAgICB8ICAgICAgICAgIHNoOiB8 IFRPRE8gfAo+ICsgICAgfCAgICAgICBzcGFyYzogfCBUT0RPIHwKPiArICAgIHwgICAgICAgICAg dW06IHwgVE9ETyB8Cj4gKyAgICB8ICAgdW5pY29yZTMyOiB8IFRPRE8gfAo+ICsgICAgfCAgICAg ICAgIHg4NjogfCAgb2sgIHwKPiArICAgIHwgICAgICB4dGVuc2E6IHwgVE9ETyB8Cj4gKyAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL0tjb25m aWcgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwo+IGluZGV4IDFlYzM0ZTE2ZWQ2NS4uMjUzZGNhYjBi ZWJjIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9LY29uZmlnCj4gKysrIGIvYXJjaC9wb3dl cnBjL0tjb25maWcKPiBAQCAtMTIwLDYgKzEyMCw3IEBAIGNvbmZpZyBQUEMKPiAgIAkjCj4gICAJ c2VsZWN0IEFSQ0hfMzJCSVRfT0ZGX1QgaWYgUFBDMzIKPiAgIAlzZWxlY3QgQVJDSF9IQVNfREVC VUdfVklSVFVBTAo+ICsJc2VsZWN0IEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUgaWYgUFBDMzIK ClJlbW92ZSB0aGUgJ2lmIFBQQzMyJyBhcyB3ZSBub3cga25vdyBpdCBhbHNvIHdvcmsgb24gUFBD NjQuCgo+ICAgCXNlbGVjdCBBUkNIX0hBU19ERVZNRU1fSVNfQUxMT1dFRAo+ICAgCXNlbGVjdCBB UkNIX0hBU19FTEZfUkFORE9NSVpFCj4gICAJc2VsZWN0IEFSQ0hfSEFTX0ZPUlRJRllfU09VUkNF Cgo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKPiBpbmRleCAwYjZjNDA0Mjk0MmEuLmZiMGU3 NmQyNTRiMyAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgK PiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKPiBAQCAtNTMsNiArNTMs MTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHN5bmNfaW5pdGlhbF9wYWdlX3RhYmxlKHZvaWQpIHsg fQo+ICAgCj4gICBzdHJ1Y3QgbW1fc3RydWN0Owo+ICAgCj4gKyNkZWZpbmUgbW1fcDRkX2ZvbGRl ZCBtbV9wNGRfZm9sZGVkCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBtbV9wNGRfZm9sZGVkKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tKQo+ICt7Cj4gKwlyZXR1cm4gIXBndGFibGVfbDVfZW5hYmxlZCgpOwo+ ICt9Cj4gKwoKRm9yIG1lIHRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgYW5vdGhlciBwYXRjaCwgaXQg aXMgbm90IGRpcmVjdGx5IGxpbmtlZCAKdG8gdGhlIHRlc3RzLgoKPiAgIHZvaWQgc2V0X3B0ZV92 YWRkcl9wNGQocDRkX3QgKnA0ZF9wYWdlLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdf cHRlKTsKPiAgIHZvaWQgc2V0X3B0ZV92YWRkcl9wdWQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25l ZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdfcHRlKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2FzbS1nZW5lcmljL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCj4g aW5kZXggNzk4ZWEzNmEwNTQ5Li5lMGIwNDc4N2U3ODkgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9h c20tZ2VuZXJpYy9wZ3RhYmxlLmgKPiArKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUu aAo+IEBAIC0xMjA4LDYgKzEyMDgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGFyY2hfaGFzX3Bm bl9tb2RpZnlfY2hlY2sodm9pZCkKPiAgICMgZGVmaW5lIFBBR0VfS0VSTkVMX0VYRUMgUEFHRV9L RVJORUwKPiAgICNlbmRpZgo+ICAgCj4gKyNpZmRlZiBDT05GSUdfREVCVUdfVk1fUEdUQUJMRQoK Tm90IHN1cmUgaXQgaXMgYSBnb29kIGlkZWEgdG8gcHV0IHRoYXQgaW4gaW5jbHVkZS9hc20tZ2Vu ZXJpYy9wZ3RhYmxlLmgKCkJ5IGRvaW5nIHRoaXMgeW91IGFyZSBmb3JjaW5nIGEgcmVidWlsZCBv ZiBhbG1vc3QgYWxsIGZpbGVzLCB3aGVyZWFzIApvbmx5IGluaXQvbWFpbi5vIGFuZCBtbS9kZWJ1 Z192bV9wZ3RhYmxlLm8gc2hvdWxkIGJlIHJlYnVpbHQgd2hlbiAKYWN0aXZhdGluZyB0aGlzIGNv bmZpZyBvcHRpb24uCgo+ICtleHRlcm4gdm9pZCBkZWJ1Z192bV9wZ3RhYmxlKHZvaWQpOwoKUGxl YXNlIGRvbid0IHVzZSB0aGUgJ2V4dGVybicga2V5d29yZCwgaXQgaXMgdXNlbGVzcyBhbmQgbm90 IHRvIGJlIHVzZWQgCmZvciBmdW5jdGlvbnMgZGVjbGFyYXRpb24uCgo+ICsjZWxzZQo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgZGVidWdfdm1fcGd0YWJsZSh2b2lkKSB7IH0KPiArI2VuZGlmCj4gKwo+ ICAgI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KPiAgIAo+ICAgI2lmbmRlZiBpb19yZW1hcF9w Zm5fcmFuZ2UKPiBkaWZmIC0tZ2l0IGEvaW5pdC9tYWluLmMgYi9pbml0L21haW4uYwo+IGluZGV4 IGRhMWJjMGI2MGE3ZC4uNWU1OWU2YWMwNzgwIDEwMDY0NAo+IC0tLSBhL2luaXQvbWFpbi5jCj4g KysrIGIvaW5pdC9tYWluLmMKPiBAQCAtMTE5Nyw2ICsxMTk3LDcgQEAgc3RhdGljIG5vaW5saW5l IHZvaWQgX19pbml0IGtlcm5lbF9pbml0X2ZyZWVhYmxlKHZvaWQpCj4gICAJc2NoZWRfaW5pdF9z bXAoKTsKPiAgIAo+ICAgCXBhZ2VfYWxsb2NfaW5pdF9sYXRlKCk7Cj4gKwlkZWJ1Z192bV9wZ3Rh YmxlKCk7CgpXb3VsZG4ndCBpdCBiZSBiZXR0ZXIgdG8gY2FsbCBkZWJ1Z192bV9wZ3RhYmxlKCkg aW4ga2VybmVsX2luaXQoKSAKYmV0d2VlbiB0aGUgY2FsbCB0byBhc3luY19zeW5jaHJvbmlzZV9m dWxsKCkgYW5kIGZ0cmFjZV9mcmVlX2luaXRfbWVtKCkgPwoKPiAgIAkvKiBJbml0aWFsaXplIHBh Z2UgZXh0IGFmdGVyIGFsbCBzdHJ1Y3QgcGFnZXMgYXJlIGluaXRpYWxpemVkLiAqLwo+ICAgCXBh Z2VfZXh0X2luaXQoKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9saWIvS2NvbmZpZy5kZWJ1ZyBiL2xp Yi9LY29uZmlnLmRlYnVnCj4gaW5kZXggNWZmZTE0NGM5Nzk0Li43Y2NlYWU5MjNjMDUgMTAwNjQ0 Cj4gLS0tIGEvbGliL0tjb25maWcuZGVidWcKPiArKysgYi9saWIvS2NvbmZpZy5kZWJ1Zwo+IEBA IC02NTMsNiArNjUzLDEyIEBAIGNvbmZpZyBTQ0hFRF9TVEFDS19FTkRfQ0hFQ0sKPiAgIAkgIGRh dGEgY29ycnVwdGlvbiBvciBhIHNwb3JhZGljIGNyYXNoIGF0IGEgbGF0ZXIgc3RhZ2Ugb25jZSB0 aGUgcmVnaW9uCj4gICAJICBpcyBleGFtaW5lZC4gVGhlIHJ1bnRpbWUgb3ZlcmhlYWQgaW50cm9k dWNlZCBpcyBtaW5pbWFsLgo+ICAgCj4gK2NvbmZpZyBBUkNIX0hBU19ERUJVR19WTV9QR1RBQkxF Cj4gKwlib29sCj4gKwloZWxwCj4gKwkgIEFuIGFyY2hpdGVjdHVyZSBzaG91bGQgc2VsZWN0IHRo aXMgd2hlbiBpdCBjYW4gc3VjY2Vzc2Z1bGx5Cj4gKwkgIGJ1aWxkIGFuZCBydW4gREVCVUdfVk1f UEdUQUJMRS4KPiArCj4gICBjb25maWcgREVCVUdfVk0KPiAgIAlib29sICJEZWJ1ZyBWTSIKPiAg IAlkZXBlbmRzIG9uIERFQlVHX0tFUk5FTAo+IEBAIC02ODgsNiArNjk0LDIyIEBAIGNvbmZpZyBE RUJVR19WTV9QR0ZMQUdTCj4gICAKPiAgIAkgIElmIHVuc3VyZSwgc2F5IE4uCj4gICAKPiArY29u ZmlnIERFQlVHX1ZNX1BHVEFCTEUKPiArCWJvb2wgIkRlYnVnIGFyY2ggcGFnZSB0YWJsZSBmb3Ig c2VtYW50aWNzIGNvbXBsaWFuY2UiCj4gKwlkZXBlbmRzIG9uIE1NVQo+ICsJZGVwZW5kcyBvbiBE RUJVR19WTQoKRG9lcyBpdCByZWFsbHkgbmVlZCB0byBkZXBlbmQgb24gREVCVUdfVk0gPwpJIHRo aW5rIHdlIGNvdWxkIG1ha2UgaXQgc3RhbmRhbG9uZSBhbmQgJ2RlZmF1bHQgeSBpZiBERUJVR19W TScgaW5zdGVhZC4KCj4gKwlkZXBlbmRzIG9uIEFSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEUKPiAr CWRlZmF1bHQgeQo+ICsJaGVscAo+ICsJICBUaGlzIG9wdGlvbiBwcm92aWRlcyBhIGRlYnVnIG1l dGhvZCB3aGljaCBjYW4gYmUgdXNlZCB0byB0ZXN0Cj4gKwkgIGFyY2hpdGVjdHVyZSBwYWdlIHRh YmxlIGhlbHBlciBmdW5jdGlvbnMgb24gdmFyaW91cyBwbGF0Zm9ybXMgaW4KPiArCSAgdmVyaWZ5 aW5nIGlmIHRoZXkgY29tcGx5IHdpdGggZXhwZWN0ZWQgZ2VuZXJpYyBNTSBzZW1hbnRpY3MuIFRo aXMKPiArCSAgd2lsbCBoZWxwIGFyY2hpdGVjdHVyZSBjb2RlIGluIG1ha2luZyBzdXJlIHRoYXQg YW55IGNoYW5nZXMgb3IKPiArCSAgbmV3IGFkZGl0aW9ucyBvZiB0aGVzZSBoZWxwZXJzIHN0aWxs IGNvbmZvcm0gdG8gZXhwZWN0ZWQKPiArCSAgc2VtYW50aWNzIG9mIHRoZSBnZW5lcmljIE1NLgo+ ICsKPiArCSAgSWYgdW5zdXJlLCBzYXkgTi4KPiArCgpEb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gbWFr ZSBpdCAnZGVmYXVsdCB5JyBhbmQgc2F5ICdJZiB1bnN1cmUsIHNheSBOJyA/Cgo+ICAgY29uZmln IEFSQ0hfSEFTX0RFQlVHX1ZJUlRVQUwKPiAgIAlib29sCj4gICAKCkNocmlzdG9waGUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK