Re: bigmem questions

From: Andrea Arcangeli (andrea@suse.de)
Date: Wed Feb 02 2000 - 20:57:34 EST


On Wed, 2 Feb 2000, Matt Chapman wrote:

>I have a couple of questions about the BIGMEM implementation.
>
>I understand BIGMEM will support up to 64G of physical RAM, but I
>haven't been able to glean from the postings what a user-process'
>virtual address space will be. [..]

User-process virtual memory is physically limited to 4giga in the IA32
architecture (unless you want to play dirty with segmentation at least...
and you probably prefer to more cleanly use shm memory and attach and
deattach to shm segments or doing similar userspace non-IA32 specific
tricks to access the whole RAM). New PAE stuff won't help you on the
virtual memory side.

Today you can use alpha with 2.2.14+bigmem patch if you need more RAM
per-task (is 2T enough for you? :).

Due the kernel/user split on the virtual memory the usual limit for
linux-IA32 is around 2giga per-task (there are two one liner on my
ftp-area to increase it to 3.5g per-task though).

>[..] The SGI and SuSE patches that I've
>seen map almost 4G virtual into physical RAM. Does BIGMEM support
>this range or will it retain the old 3G virtual space?

NOTE: when you talk about the SuSE patches you are exactly talking about
BIGMEM. FYI: BIGMEM is been originally designed and developed from scratch
by me at SuSE and Gerhard Wichert at Siemens.

The BIGMEM SuSE patches that broken the 2giga RAM limit on IA32 are been
included into 2.3.16. Then during 2.3.x the patch that did the rest of the
stuff necessary for >4g support (so implementing the three level
pagetables of PAE mode and changing GFP to return a struct page * instead
of a 32bit interger) also renamed the word "bigmem" to "highmem".

(BTW, personally I prefer the original "bigmem" name for the thing, and
the rename just generated confusion to you for example.)

>Does BIGMEM adjust to the amount of RAM installed? For example, the
>2.2.x release requires one kernel build for less than 1G and another
>for over 1G. Will BIGMEM support say 16M to 64G with the same kernel
>build?

You can support more than 4giga only on P6 chips, a kernel compiled for
supporting 64giga of ram won't run on older IA32 chips like the P5
generation, I actually don't know about AMD and others. Probably we should
put a dependency for PAE mode on P6 compile.

If you compile without PAE (so with 4G support) the resulting kernel will
run all over the place.

>How about support for 16M to 4G RAM with one kernel?

Fine. You can just do it with 2.2.14+bigmem btw.

>If rebuilding is required, why? [..]

Not required.

> [..] Is there a sizable performance hit in
>making it dynamic?

No.

Andrea

-
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/



This archive was generated by hypermail 2b29 : Mon Feb 07 2000 - 21:00:09 EST