Re: using more than 2 GB as a ram disk

Linus Torvalds (torvalds@transmeta.com)
Mon, 1 Feb 1999 10:34:56 -0800 (PST)


On Sat, 30 Jan 1999, Manfred Spraul wrote:
>
> Does that mean that:
> - the kernel (i.e. the buffer cache, paging unit, swapper, etc.) will not
> support more than 2 GB physical memory on 32 bit machines.

Basically yes.

> - you would accept patches that make it possible to use the remaining memory
> as as raw physical memory.

Correct.

The only people concerned about 2M+ on PC kind of machines tend to be
database people, and they are more than happy to just get it as "extra
memory" rather than having it around as generic buffers for the page cache
etc.

> The physical memory could be used for ram disks (->swap file), or for other
> devices that need lots of memory without kernel support.

Indeed. Note, however, that once you pass 4GB, you have other problems,
namely standard PCI DMA doesn't go there, so not all devices would be
happy using it.

A RAM-disk always works.

Btw, the RAM-disk approach is what NT does too, for pretty much the same
reasons.

> Is someone currently writing such a patch?

Not that I know of.

Note that to access the high memory, you need to use special page table
entries, so there are subtle issues with TLB coherency on SMP systems etc.
The only sane way to do it is probably to reserve one 4MB pte per CPU, and
allow each CPU to locally have whatever TLB window they want to the high
memory.

Basically it's not hard, but there are subtle issues like the above that
you have to get right. And while you can test it on a machine with less
than 1GB of memory, you do generally want to have access to more memory
for "real" testing.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/