Re: [PATCH] x86 Boot NUMA kernels on non-NUMA hardware with DISCONTIG memory model

Mel Gorman
2007-08-24T17:26:35Z

On (24/08/07 19:07), Andi Kleen didst pronounce:
> On Fri, Aug 24, 2007 at 05:52:31PM +0100, Andy Whitcroft wrote:
> > Andi Kleen wrote:
> > >> This reserved portion of the KVA must be PMD aligned.
> > >
> > > Why do they need to be PMD aligned?
> >
> > That comes from the fact that the KVA in x86 has traditionally been
>
> Where does this KVA acronym come from? In Linux this is traditionally
> called direct or linear mapping. KVA sounds foreign.
>

The KVA acronym is being used in the x86 discontig code. The terms direct
or linear mappings are not perfectly accurate either because the direct
mappings are being altered in a way that pages that would normally be in
highmem are now directly mapped for the lifetime of the system.

> > mapped with huge pages where at all possible, for performance reasons.
>
> It was partly a rhetorical question.
>
> My point is that we don't make any effort to PMD align end_pfn,
> so there is also no reason to PMD align any of the other boundaries.
>

Other than the fact that the memmap must be PMD aligned to use hugepage
entries for the memmap. It could be mapped with small pages in corner cases
but the complexity worth it?

> The only reason in theory is to avoid virtual aliases with
> uncached areas, but there are no uncached areas in highmem
> so this shouldn't be a concern.
>
> There might be overlap into the PCI hole though which is uncached
> and needs care rgarding virtual aliases, but that could be handled
> by teaching change_page_attr() to handle the overlap too.
>
> I think that would be a better fix -- do that and then
> drop that PMD align requirement. Essentially you need a
> end_pfn_map like x86_64 has and use that in change_page_attr().
>

I can't see this type of lifting being done any time soon. As SPARSEMEM works
and there is hope with the vmemmap work that DISCONTIG will finally go away,
it may not be the best investment of time.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab