Christoph Lameter wrote: >> This is wrong; pgd's are smaller than PAGE_SIZE on PAE. Burning lowmem >> like this is very, very bad for such systems. pmd_cache is rather >> trivial to convert to quicklists, since all it does is zero pages. I >> still don't approve of even the !SHARED_KERNEL_PMD case using PAGE_SIZE >> -sized pgd's. Xen should really be fixed to avoid requiring guests to >> have recursive pagetables or whatever it's doing. >> > > But the Xen guys need the full sized pgd? >
Yes, Xen needs a page-sized PGD. There are two reasons: 1. Xen inherently needs a whole page for the pgd, because it classifies pages by type, and the pgd is a pagetable-typed page. 2. When the kernel mappings are not being shared between processes, as in non-PAE or PAE with !SHARED_KERNEL_PMD, it maintains a pgd_list linked though the index field in the page structure's index field. For this to work, you can't have more than one pgd per page. The pgd_list is needed to sync the vmalloc mappings across all the pagetables. Xen needs to set !SHARED_KERNEL_PMD for PAE when running a 32-bit kernel under a 32-bit hypervisor; when running under a 64-bit hypervisor, there's no need to steal any guest address space for the hypervisor. (I haven't implemented this on the Linux side yet.) J - 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/