Can people who can reproduce the x86-64 2.6.11 pmd bad problem please apply the following patch and see (a) if it can be still reprocuded with it and send the output generated. Also a strace of the program that showed it (pid and name of it should be dumped) would be useful if not too big.
After staring some time at the code I cant find the problem, but I somehow suspect it has to do with early page table frees. That is why they were disabled. This should not cause any memory leaks, the page tables will be always freed at process exit, so it is safe to apply even for production machines. Thanks, -Andi diff -u linux-2.6.11/mm/memory.c-o linux-2.6.11/mm/memory.c --- linux-2.6.11/mm/memory.c-o 2005-03-02 08:38:08.000000000 +0100 +++ linux-2.6.11/mm/memory.c 2005-04-22 19:32:30.305402456 +0200 @@ -94,6 +94,7 @@ if (pmd_none(*pmd)) return; if (unlikely(pmd_bad(*pmd))) { + printk("%s:%d: ", current->comm, current->pid); pmd_ERROR(*pmd); pmd_clear(pmd); return; diff -u linux-2.6.11/mm/mmap.c-o linux-2.6.11/mm/mmap.c --- linux-2.6.11/mm/mmap.c-o 2005-03-02 08:38:12.000000000 +0100 +++ linux-2.6.11/mm/mmap.c 2005-04-22 19:33:10.354580428 +0200 @@ -1645,11 +1645,13 @@ return; if (first < FIRST_USER_PGD_NR * PGDIR_SIZE) first = FIRST_USER_PGD_NR * PGDIR_SIZE; +#if 0 /* No point trying to free anything if we're in the same pte page */ if ((first & PMD_MASK) < (last & PMD_MASK)) { clear_page_range(tlb, first, last); flush_tlb_pgtables(mm, first, last); } +#endif } /* Normal function to fix up a mapping - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/