Re: [PATCH V6 0/2] mm/debug: Add tests validating architecture page table helpers
From: Anshuman Khandual <hidden>
Date: 2019-10-16 08:59:53
Also in:
linux-arm-kernel, linux-mips, linux-mm, linux-s390, linux-sh, lkml, sparclinux
On 10/16/2019 12:12 AM, Qian Cai wrote:
quoted hunk ↗ jump to hunk
On Tue, 2019-10-15 at 20:51 +0530, Anshuman Khandual wrote:quoted
On 10/15/2019 08:11 PM, Qian Cai wrote:quoted
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/0x490Hmm, with defconfig (DEBUG_VM=y and DEBUG_VM_PGTABLE=y) it does not crash but with the config above, it does. Just wondering if it is possible that these pages might not been initialized yet because DEFERRED_STRUCT_PAGE_INIT=y ?Yes, this patch works fine.diff --git a/init/main.c b/init/main.c index 676d8020dd29..591be8f9e8e0 100644 --- a/init/main.c +++ b/init/main.c@@ -1177,7 +1177,6 @@ static noinline void __init kernel_init_freeable(void)workqueue_init(); init_mm_internals(); - debug_vm_pgtable(); do_pre_smp_initcalls(); lockup_detector_init();@@ -1186,6 +1185,8 @@ static noinline void __init kernel_init_freeable(void)sched_init_smp(); page_alloc_init_late(); + debug_vm_pgtable(); + /* Initialize page ext after all struct pages are initialized. */ page_ext_init();
Sure, will keep this in mind if we at all end up with memory allocation approach for this test.
quoted
[ 13.898549][ T1] page:ffffea0005000000 is uninitialized and poisoned [ 13.898549][ T1] raw: ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff [ 13.898549][ T1] raw: ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff [ 13.898549][ T1] page dumped because: VM_BUG_ON_PAGE(PagePoisoned(p)) [ 13.898549][ T1] ------------[ cut here ]------------ [ 13.898549][ T1] kernel BUG at ./include/linux/mm.h:1107! [ 13.898549][ T1] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN PTI [ 13.898549][ T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc3-next-20191015+ #