Sasha Levin wrote: > Hi Andrea, > > On 12/16/2013 03:52 PM, Andrea Arcangeli wrote: > > Is the bug reproducible? If yes the simplest is probably to add some > > allocation tracking to the page, so if page->ptl is null we can simply > > print a stack trace of who allocated the page (and later forgot to > > initialize the ptl). > > Yes, it's easy to reproduce. I'm trying to reproduce it with trinity. No luck so far. Any suggestions? Kernel config? VM setup? Do you have swap enabled? How do you run trinity? > I've done as suggested and here's the trace from > the allocation: > > [ 184.139519] [<ffffffff8107de0f>] save_stack_trace+0x2f/0x50 > [ 184.140706] [<ffffffff81257769>] get_page_from_freelist+0x759/0x7a0 > [ 184.141605] [<ffffffff81258438>] __alloc_pages_nodemask+0x3b8/0x520 > [ 184.142810] [<ffffffff812a4baf>] alloc_pages_vma+0x1df/0x220 > [ 184.143631] [<ffffffff812bcd58>] do_huge_pmd_wp_page+0x2d8/0x730 > [ 184.144526] [<ffffffff81280e01>] __handle_mm_fault+0x2b1/0x3d0 > [ 184.145361] [<ffffffff81281053>] handle_mm_fault+0x133/0x1c0 > [ 184.146129] [<ffffffff812815f8>] __get_user_pages+0x448/0x640 > [ 184.147055] [<ffffffff812827a4>] __mlock_vma_pages_range+0xd4/0xe0 > [ 184.147980] [<ffffffff812828c0>] __mm_populate+0x110/0x190 > [ 184.148933] [<ffffffff812839b2>] SyS_mlock+0xf2/0x130 > [ 184.149689] [<ffffffff843c5e50>] tracesys+0xdd/0xe2 It's trace from huge page allocation, not from page table allocation we are interested in. In our case we need to know who allocated pmd_page(*pmd) when orig_pte = pte_offset_map_lock(vma->vm_mm, pmd, start, &ptl); crashes. Note: we usually allocate page tables with __GFP_NOTRACK. It probably need to be changed for this experiment. > > Agree with Kirill that it would help to verify the bug goes away by > > disabling USE_SPLIT_PTE_PTLOCKS. > > It seems that the bug is gone without USE_SPLIT_PTE_PTLOCKS. What about PMD sibling: USE_SPLIT_PMD_PTLOCKS? I mean USE_SPLIT_PTE_PTLOCKS == 1, USE_SPLIT_PMD_PTLOCKS == 0. -- Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>