Am 13.11.2013 06:06, schrieb Chen Gang: > Unfortunately, p?d_alloc() and p?d_free() are not pair!! If p?d_alloc() > succeed, they may be used, so in the next failure, we have to skip them > to let exit_mmap() or do_munmap() to process it. > > According to "Documentation/vm/locking", 'mm->page_table_lock' is for > using vma list, so not need it when its related vmas are detached or > unmapped from using vma list. > > The related work flow: > > exit_mmap() -> > unmap_vmas(); /* so not need mm->page_table_lock */ > free_pgtables(); > > do_munmap()-> > detach_vmas_to_be_unmapped(); /* so not need mm->page_table_lock */ > unmap_region() -> > free_pgtables(); > > free_pgtables() -> > free_pgd_range() -> > free_pud_range() -> > free_pmd_range() -> > free_pte_range() -> > pmd_clear(); > pte_free_tlb(); > pud_clear(); > pmd_free_tlb(); > pgd_clear(); > pud_free_tlb(); > > > Signed-off-by: Chen Gang <gang.chen@xxxxxxxxxxx> Sounds reasonable to me. *But* there are patches you from out there that tried to fix similar issues and got reverted later. Now I'm a bit nervous and want a ACK from mm folks to have this verified. It's not that I don't trust you, but I really don't trust you. ;-) Thanks, //richard -- 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>