Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?]

Daniel Phillips
2002-05-02T17:23:36Z

On Thursday 02 May 2002 17:59, Dave Engebretsen wrote:
> Anton Blanchard wrote:
> > Also when we do hotplug memory support will discontigmem be able to
> > efficiently handle memory turning up all over the place in the memory
> > map?
>
> On this type of partitioned system where ppc64 runs, there is not much
> administration that could be done to help the problem. As Anton
> mentioned, when the system has been up for a long time, and memory has
> been moving between partitions which support dynamic memory movement, it
> is assured that memory will become very fragmented. As more partitions
> on these systems become available, and resources migrate more freely,
> the problem will get worse.
>
> Whether this management from kernel to hardware addresses is done in the
> hypervisor layer or the OS, the same overhead exists, given todays
> hardware structure for PowerPC servers anyway. In todays ppc64
> implementation, we just use an array to map from what the kernel sees as
> its address space to what is put in the hardware page table and I/O
> translation tables, thus not requiring any changes in independant code.
> This does consume some storage, but the highly fragmented nature of our
> platform memory drives this decision. I would like to see that data
> structure decision left to the archs as different platform design points
> may lead to different mapping decisions.

And it is left up to the arch in my patch, I've simply imposed a little more
order on what, up till now, has been a pretty chaotic corner of the kernel,
and provided a template that satisfies a wider variety of needs than the old
one.

It sounds like the table translation you're doing in the hypervisor is
exactly what I've implemented in the kernel. One advantage of going with
the kernel's implementation is that you get the benefit of improvements
made to it, for example, the proposed hashing scheme to handle extremely
fragmented physical memory maps.

--
Daniel