Linux SNPS ARC Archive on lore.kernel.org
 help / color / Atom feed
  • [parent not found: <1571131302-32290-3-git-send-email-anshuman.khandual@arm.com>]
  • * Re: [PATCH V6 0/2] mm/debug: Add tests validating architecture page table helpers
           [not found] <1571131302-32290-1-git-send-email-anshuman.khandual@arm.com>
           [not found] ` <1571131302-32290-2-git-send-email-anshuman.khandual@arm.com>
           [not found] ` <1571131302-32290-3-git-send-email-anshuman.khandual@arm.com>
    @ 2019-10-15 14:41 ` " Qian Cai
      2019-10-15 15:21   ` Anshuman Khandual
      2 siblings, 1 reply; 17+ messages in thread
    From: Qian Cai @ 2019-10-15 14:41 UTC (permalink / raw)
      To: Anshuman Khandual, linux-mm
      Cc: Mark Rutland, linux-ia64, linux-sh, Peter Zijlstra, James Hogan,
    	Heiko Carstens, Michal Hocko, Dave Hansen, Paul Mackerras,
    	sparclinux, Thomas Gleixner, linux-s390, Jason Gunthorpe,
    	Michael Ellerman, x86, Russell King - ARM Linux, Matthew Wilcox,
    	Steven Price, Tetsuo Handa, Gerald Schaefer, linux-snps-arc,
    	linux-arm-kernel, Kees Cook, Masahiro Yamada, Mark Brown,
    	Kirill A . Shutemov, Dan Williams, Vlastimil Babka,
    	Christophe Leroy, Sri Krishna chowdary, Ard Biesheuvel,
    	Greg Kroah-Hartman, linux-mips, Ralf Baechle, linux-kernel,
    	Paul Burton, Mike Rapoport, Vineet Gupta, Martin Schwidefsky,
    	Andrew Morton, linuxppc-dev, David S. Miller, Mike Kravetz
    
    The x86 will crash with linux-next during boot due to this series (v5) with the
    config below plus CONFIG_DEBUG_VM_PGTABLE=y. I am not sure if v6 would address
    it.
    
    https://raw.githubusercontent.com/cailca/linux-mm/master/x86.config
    
    [   33.862600][    T1] page:ffffea0009000000 is uninitialized and poisoned
    [   33.862608][    T1] raw: ffffffffffffffff ffffffffffffffff ffffffffffffffff
    ffffff871140][    T1]  ? _raw_spin_unlock_irq+0x27/0x40
    [   33.871140][    T1]  ? rest_init+0x307/0x307
    [   33.871140][    T1]  kernel_init+0x11/0x139
    [   33.871140][    T1]  ? rest_init+0x307/0x307
    [   33.871140][    T1]  ret_from_fork+0x27/0x50
    [   33.871140][    T1] Modules linked in:
    [   33.871140][    T1] ---[ end trace e99d392b0f7befbd ]---
    [   33.871140][    T1] RIP: 0010:alloc_gigantic_page_order+0x3fe/0x490
    
    On Tue, 2019-10-15 at 14:51 +0530, Anshuman Khandual wrote:
    > This series adds a test validation for architecture exported page table
    > helpers. Patch in the series adds basic transformation tests at various
    > levels of the page table. Before that it exports gigantic page allocation
    > function from HugeTLB.
    > 
    > This test was originally suggested by Catalin during arm64 THP migration
    > RFC discussion earlier. Going forward it can include more specific tests
    > with respect to various generic MM functions like THP, HugeTLB etc and
    > platform specific tests.
    > 
    > https://lore.kernel.org/linux-mm/20190628102003.GA56463@arrakis.emea.arm.com/
    > 
    > Changes in V6:
    > 
    > - Moved alloc_gigantic_page_order() into mm/page_alloc.c per Michal
    > - Moved alloc_gigantic_page_order() within CONFIG_CONTIG_ALLOC in the test
    > - Folded Andrew's include/asm-generic/pgtable.h fix into the test patch 2/2
    > 
    > Changes in V5: (https://patchwork.kernel.org/project/linux-mm/list/?series=185991)
    > 
    > - Redefined and moved X86 mm_p4d_folded() into a different header per Kirill/Ingo
    > - Updated the config option comment per Ingo and dropped 'kernel module' reference
    > - Updated the commit message and dropped 'kernel module' reference
    > - Changed DEBUG_ARCH_PGTABLE_TEST into DEBUG_VM_PGTABLE per Ingo
    > - Moved config option from mm/Kconfig.debug into lib/Kconfig.debug
    > - Renamed core test function arch_pgtable_tests() as debug_vm_pgtable()
    > - Renamed mm/arch_pgtable_test.c as mm/debug_vm_pgtable.c
    > - debug_vm_pgtable() gets called from kernel_init_freeable() after init_mm_internals()
    > - Added an entry in Documentation/features/debug/ per Ingo
    > - Enabled the test on arm64 and x86 platforms for now
    > 
    > Changes in V4: (https://patchwork.kernel.org/project/linux-mm/list/?series=183465)
    > 
    > - Disable DEBUG_ARCH_PGTABLE_TEST for ARM and IA64 platforms
    > 
    > Changes in V3: (https://lore.kernel.org/patchwork/project/lkml/list/?series=411216)
    > 
    > - Changed test trigger from module format into late_initcall()
    > - Marked all functions with __init to be freed after completion
    > - Changed all __PGTABLE_PXX_FOLDED checks as mm_pxx_folded()
    > - Folded in PPC32 fixes from Christophe
    > 
    > Changes in V2:
    > 
    > https://lore.kernel.org/linux-mm/1568268173-31302-1-git-send-email-anshuman.khandual@arm.com/T/#t
    > 
    > - Fixed small typo error in MODULE_DESCRIPTION()
    > - Fixed m64k build problems for lvalue concerns in pmd_xxx_tests()
    > - Fixed dynamic page table level folding problems on x86 as per Kirril
    > - Fixed second pointers during pxx_populate_tests() per Kirill and Gerald
    > - Allocate and free pte table with pte_alloc_one/pte_free per Kirill
    > - Modified pxx_clear_tests() to accommodate s390 lower 12 bits situation
    > - Changed RANDOM_NZVALUE value from 0xbe to 0xff
    > - Changed allocation, usage, free sequence for saved_ptep
    > - Renamed VMA_FLAGS as VMFLAGS
    > - Implemented a new method for random vaddr generation
    > - Implemented some other cleanups
    > - Dropped extern reference to mm_alloc()
    > - Created and exported new alloc_gigantic_page_order()
    > - Dropped the custom allocator and used new alloc_gigantic_page_order()
    > 
    > Changes in V1:
    > 
    > https://lore.kernel.org/linux-mm/1567497706-8649-1-git-send-email-anshuman.khandual@arm.com/
    > 
    > - Added fallback mechanism for PMD aligned memory allocation failure
    > 
    > Changes in RFC V2:
    > 
    > https://lore.kernel.org/linux-mm/1565335998-22553-1-git-send-email-anshuman.khandual@arm.com/T/#u
    > 
    > - Moved test module and it's config from lib/ to mm/
    > - Renamed config TEST_ARCH_PGTABLE as DEBUG_ARCH_PGTABLE_TEST
    > - Renamed file from test_arch_pgtable.c to arch_pgtable_test.c
    > - Added relevant MODULE_DESCRIPTION() and MODULE_AUTHOR() details
    > - Dropped loadable module config option
    > - Basic tests now use memory blocks with required size and alignment
    > - PUD aligned memory block gets allocated with alloc_contig_range()
    > - If PUD aligned memory could not be allocated it falls back on PMD aligned
    >   memory block from page allocator and pud_* tests are skipped
    > - Clear and populate tests now operate on real in memory page table entries
    > - Dummy mm_struct gets allocated with mm_alloc()
    > - Dummy page table entries get allocated with [pud|pmd|pte]_alloc_[map]()
    > - Simplified [p4d|pgd]_basic_tests(), now has random values in the entries
    > 
    > Original RFC V1:
    > 
    > https://lore.kernel.org/linux-mm/1564037723-26676-1-git-send-email-anshuman.khandual@arm.com/
    > 
    > Cc: Andrew Morton <akpm@linux-foundation.org>
    > Cc: Vlastimil Babka <vbabka@suse.cz>
    > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    > Cc: Thomas Gleixner <tglx@linutronix.de>
    > Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    > Cc: Jason Gunthorpe <jgg@ziepe.ca>
    > Cc: Dan Williams <dan.j.williams@intel.com>
    > Cc: Peter Zijlstra <peterz@infradead.org>
    > Cc: Michal Hocko <mhocko@kernel.org>
    > Cc: Mark Rutland <mark.rutland@arm.com>
    > Cc: Mark Brown <broonie@kernel.org>
    > Cc: Steven Price <Steven.Price@arm.com>
    > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    > Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    > Cc: Kees Cook <keescook@chromium.org>
    > Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
    > Cc: Matthew Wilcox <willy@infradead.org>
    > Cc: Sri Krishna chowdary <schowdary@nvidia.com>
    > Cc: Dave Hansen <dave.hansen@intel.com>
    > Cc: Russell King - ARM Linux <linux@armlinux.org.uk>
    > Cc: Michael Ellerman <mpe@ellerman.id.au>
    > Cc: Paul Mackerras <paulus@samba.org>
    > Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    > Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    > Cc: "David S. Miller" <davem@davemloft.net>
    > Cc: Vineet Gupta <vgupta@synopsys.com>
    > Cc: James Hogan <jhogan@kernel.org>
    > Cc: Paul Burton <paul.burton@mips.com>
    > Cc: Ralf Baechle <ralf@linux-mips.org>
    > Cc: Kirill A. Shutemov <kirill@shutemov.name>
    > Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    > Cc: Christophe Leroy <christophe.leroy@c-s.fr>
    > Cc: Mike Kravetz <mike.kravetz@oracle.com>
    > Cc: linux-snps-arc@lists.infradead.org
    > Cc: linux-mips@vger.kernel.org
    > Cc: linux-arm-kernel@lists.infradead.org
    > Cc: linux-ia64@vger.kernel.org
    > Cc: linuxppc-dev@lists.ozlabs.org
    > Cc: linux-s390@vger.kernel.org
    > Cc: linux-sh@vger.kernel.org
    > Cc: sparclinux@vger.kernel.org
    > Cc: x86@kernel.org
    > Cc: linux-kernel@vger.kernel.org
    > 
    > 
    > Anshuman Khandual (2):
    >   mm/page_alloc: Make alloc_gigantic_page() available for general use
    >   mm/debug: Add tests validating architecture page table helpers
    > 
    >  .../debug/debug-vm-pgtable/arch-support.txt   |  34 ++
    >  arch/arm64/Kconfig                            |   1 +
    >  arch/x86/Kconfig                              |   1 +
    >  arch/x86/include/asm/pgtable_64.h             |   6 +
    >  include/asm-generic/pgtable.h                 |   6 +
    >  include/linux/gfp.h                           |   3 +
    >  init/main.c                                   |   1 +
    >  lib/Kconfig.debug                             |  21 +
    >  mm/Makefile                                   |   1 +
    >  mm/debug_vm_pgtable.c                         | 450 ++++++++++++++++++
    >  mm/hugetlb.c                                  |  76 +--
    >  mm/page_alloc.c                               |  98 ++++
    >  12 files changed, 623 insertions(+), 75 deletions(-)
    >  create mode 100644 Documentation/features/debug/debug-vm-pgtable/arch-support.txt
    >  create mode 100644 mm/debug_vm_pgtable.c
    > 
    
    _______________________________________________
    linux-snps-arc mailing list
    linux-snps-arc@lists.infradead.org
    http://lists.infradead.org/mailman/listinfo/linux-snps-arc
    
    ^ permalink raw reply	[flat|nested] 17+ messages in thread

  • end of thread, back to index
    
    Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
    -- links below jump to the message on this page --
         [not found] <1571131302-32290-1-git-send-email-anshuman.khandual@arm.com>
         [not found] ` <1571131302-32290-2-git-send-email-anshuman.khandual@arm.com>
    2019-10-15 10:45   ` [PATCH V6 1/2] mm/page_alloc: Make alloc_gigantic_page() available for general use Michal Hocko
    2019-10-15 11:07     ` Anshuman Khandual
    2019-10-15 11:42   ` David Hildenbrand
    2019-10-15 11:47     ` Michal Hocko
    2019-10-15 11:50       ` David Hildenbrand
    2019-10-15 12:01         ` David Hildenbrand
    2019-10-15 12:09         ` Michal Hocko
    2019-10-15 12:11           ` Michal Hocko
         [not found] ` <1571131302-32290-3-git-send-email-anshuman.khandual@arm.com>
    2019-10-15 11:46   ` [PATCH V6 2/2] mm/debug: Add tests validating architecture page table helpers Michal Hocko
    2019-10-15 12:27     ` Anshuman Khandual
    2019-10-15 18:09   ` Qian Cai
    2019-10-16  9:54     ` Anshuman Khandual
    2019-10-15 14:41 ` [PATCH V6 0/2] " Qian Cai
    2019-10-15 15:21   ` Anshuman Khandual
    2019-10-15 18:42     ` Qian Cai
    2019-10-16  8:59       ` Anshuman Khandual
    2019-10-16  8:20     ` Michal Hocko
    

    Linux SNPS ARC Archive on lore.kernel.org
    
    Archives are clonable:
    	git clone --mirror https://lore.kernel.org/linux-snps-arc/0 linux-snps-arc/git/0.git
    
    	# If you have public-inbox 1.1+ installed, you may
    	# initialize and index your mirror using the following commands:
    	public-inbox-init -V2 linux-snps-arc linux-snps-arc/ https://lore.kernel.org/linux-snps-arc \
    		linux-snps-arc@lists.infradead.org
    	public-inbox-index linux-snps-arc
    
    Example config snippet for mirrors
    
    Newsgroup available over NNTP:
    	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-snps-arc
    
    
    AGPL code for this site: git clone https://public-inbox.org/public-inbox.git