Re: PROBLEM: Linux 2.6.0-test11 only lets me use 1GB out of 2GB ram.

William Lee Irwin III
2003-12-11T15:00:26Z

On Wed, Dec 10, 2003 at 09:41:11PM -0800, William Lee Irwin III wrote:
>> You're probably thinking of 2:2 split patches.
>> 2:2 splits are at least technically ABI violations, which is probably
>> why this isn't merged etc. Applications sensitive to it are uncommon.
>> Yes, the SVR4 i386 ELF/ABI spec literally mandates 0xC0000000 as the
>> top of the process address space.

On Thu, Dec 11, 2003 at 09:41:48AM -0500, Raul Miller wrote:
> Apologies if I'm asking about the obvious, but...
> [1] isn't 0xC0000000 at 3GB?

It is.

On Thu, Dec 11, 2003 at 09:41:48AM -0500, Raul Miller wrote:
> [2] Even if ELF did restrict a user process to 1GB (which I'm pretty
> sure it doesn't), wouldn't the kernel still be able to manage 2GB of
> user memory?

You have it backward. The SVR4/i386 ELF ABI specification is requiring
userspace to be granted at least 3GB of address space.

This does not necessarily present a restriction for the kernel;
consider task gates (mingo did it by hand).

On Thu, Dec 11, 2003 at 09:41:48AM -0500, Raul Miller wrote:
> Probably my real question is: "what's this about 2:2 split patches"?
> Basically, I thought "linux supports 2GB ram" had been been the case
> since the dark ages. It's hard for me to comprehend how highmem, or 64
> bit cpus, could have much to do with a 1GB limit.

You should probably ignore this thread. It's probably not relevant to
you.

On Thu, Dec 11, 2003 at 09:41:48AM -0500, Raul Miller wrote:
> [In my fantasies, I was thinking that the system came up with only 1GB of
> the memory easily usable, and that the lack of support for my hardware
> meant that it couldn't be properly reconfigured. But I recognize that
> I haven't spent the time researching this to see if in fact this is
> the case.]

Highmem support gets you this on ia32. Other architectures can support it
with less overhead.

On Thu, Dec 11, 2003 at 09:41:48AM -0500, Raul Miller wrote:
> I am in the process of bringing up an cross compilation environment for
> amd64 -- I need to do that anyways -- and I'll try building a real 64
> bit kernel to see if that helps any. If that doesn't, I guess I'll try
> a couple 4G highmem kernels (one 64 bit, one 32 bit). If nothing else,
> that will eat up some time...

If you have such a cpu why are you bothering with highmem (or wondering
if > 2GB is supported)?

-- wli