[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46438D03.8030100@goop.org>
Date: Thu, 10 May 2007 14:22:11 -0700
From: Jeremy Fitzhardinge <jeremy@...p.org>
To: Christoph Lameter <clameter@....com>
CC: William Lee Irwin III <wli@...omorphy.com>,
Hugh Dickins <hugh@...itas.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andi Kleen <ak@...e.de>, linux-kernel@...r.kernel.org
Subject: Re: slub-i386-support.patch
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists