Re: sparsemem & sparsemem extreme question

Dave Hansen
2005-10-05T15:52:00Z

On Wed, 2005-10-05 at 08:39 +0200, Heiko Carstens wrote:
> > > I'm just wondering why there is all this indirection stuff here and why not
> > > have one contiguous aray of struct pages (residing in the vmalloc area) that
> > > deals with whatever size of memory an architecture wants to support.
> > This is exactly what ia64 does today. Programatically, it does remove a
> > layer of indirection. However, there are some data structures that have
> > to be traversed during a lookup: the page tables. Granted, the TLB will
> > provide some caching, but a lookup on ia64 can potentially be much more
> > expensive than the two cacheline misses that sparsemem extreme might
> > have.
>
> Sure, just that on s390 we have a 1:1 mapping anyway. So these lookups would
> be more or less for free for us (compared to what we have now).

Is the 1:1 mapping done with pagetables? If so, it is not free.

> > In the end no one has ever produced any compelling performance reason to
> > use a vmem_map (as ia64 calls it). In addition, sparsemem doesn't cause
> > any known performance regressions, either.
>
> As far as I understand the memory hotplug patches they won't work without
> SPARSEMEM support. So the ia64 approach with a vmem_map will not work here,
> right?

If we had vmem_map implemented for every arch that supported memory
hotplug, and it didn't have performance implications, then we could have
vmem_map everywhere, and use it for hotplug.

> Actually my concern is that whenever the address space that is covered with
> SPARSEMEM_EXTREME is not sufficient just another layer of indirection needs
> to be added.

Do you have any performance numbers to back up your concerns, or is it
more about the code complexity?

-- Dave