Re: [PATCH V6 0/2] mm/debug: Add tests validating architecture page table helpers

From: Michal Hocko
Date: Wed Oct 16 2019 - 04:20:30 EST


On Tue 15-10-19 20:51:11, Anshuman Khandual wrote:
>
>
> On 10/15/2019 08:11 PM, Qian Cai wrote:
> > 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
>
> Hmm, 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 ?

Quite likely. You need to wait for page_alloc_init_late to finish.
>
> [ 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+ #

--
Michal Hocko
SUSE Labs