Re: Large memory system

Stephen C. Tweedie
1999-02-11T11:12:31Z

Hi,

On Wed, 10 Feb 1999 18:02:32 +0100, "Manfred Spraul"
<masp0008@stud.uni-sb.de> said:

> This was not intended as a solution, but as a new idea:
> - the memory > 1 GB is allocated one page at a time.
> - some 'struct page' fields are useless for high memory.
> - if someone who is not prepared to handle high memory finds such a page,
> the computer will crash anyway.
> - high memory needs bounce buffers, so a special if(highmem()) is
> required.

All of this is already in the design.

> ---> no need to use mem_map, add an independant array for high_mem.

No, it makes no sense at all to do this, because you'd have to
implement two separate page caches if you wanted both low-mem and
high-mem cached pages. It makes far, far more sense to simply expand
mem_map.

> The advantage is that you can add new fields to such an array (e.g. true
> LRU for a cache), without causing problems in the remaining kernel.

That's really not a problem. As long as we never hand out a high-mem
page to the kernel unless the kernel explicitly asks for one (for
anonymous pages or page cache), the kernel can never get so confused
anyway.

> If you restrict the remaining memory to unshared pages (i.e. no COW), then
> the implementation should be really simple:

There is no reason to make this restriction, COW is dead easy.

--Stephen