>>>>> "Dave" == Dave Jones <davej@codemonkey.org.uk> writes: Dave> The code that follows this is interesting though.. Dave> #ifdef CONFIG_X86_PAE Dave> #define pgd_alloc(mm) get_pgd_slow() Dave> #define pgd_free(pgd) free_pgd_slow(pgd) Dave> #else Dave> #define pgd_alloc(mm) get_pgd_fast() Dave> #define pgd_free(pgd) free_pgd_fast(pgd) Dave> #endif Dave> Anyone want to elaborate why PAE means we frob pgd's the slow way? See ``get_pgd_slow'', PAE version. With PAE enabled, the PPro+ CPUs use three-level page tables, with up to four page directory tables. The function ``get_pgd_slow'' seems to allocate the upper two levels -- the ``pgd_t'' is actually not a page but an array of up to four pointers to the page directory tables. And the quicklist holds whole pages ... Regards, -velco -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/