Memory Limits on Linux on x86

Donald Becker becker at
Fri Jul 19 10:25:45 PDT 2002

On Fri, 19 Jul 2002, Mark Hahn wrote:

> > problem we have. I know that 32-bit x86 Linux has
> > a memory limit of 3 Gigs (3.5 with a patch) that it
> 3.75 is pretty trivial.  don't let the "patch" scare you off - 
> there's nothing exotic about it, it's been around for years,
> consists of just a couple lines of code change, and some dist/kernels
> come with it as a CONFIG_ option.

Yes, the patch just sets the boundary between kernel and user space.
You can change it to an arbitrary split, but I believe it's still
checked in some places using a binary mask.

See  __PAGE_OFFSET  in <asm/page.h>

> > can address. Is that 3 Gigs per user process or 3 Gigs
> > total?

With 2.2, either but not both.  You are limited to
   2G physical memory and 2G process space
   3G physical memory, with 1G maximum processes
      This make sense with multiple large processes (not common), or for
      keeping lots of I/O buffers around.
   1G physical memory, with 3G maximum processes (swap, swap, swap)

> the kernel can use up to ~64G physical ram.

...with the 2.4 kernel.

> note that doing lots of IO through highmem can be a performance problem
> as well, since not all IO hardware can deal with 64b addresses.

I claim that most PCI hardware does not support 64b addresses, and those
that do are used in 32b addressing mode for better performance.

But practically you only care about the single block I/O device you are
using: the IDE or SCSI controller and the bus bridges it talks through
must support 64b initiator addresses or you will be doing massive

You pretty much don't care about 64b target addresses: most PCI devices
have less than 1KB of register space.  You care about the device being
able to generate 64b addresses when acting as a bus master.

Donald Becker				becker at
Scyld Computing Corporation
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993

More information about the Beowulf mailing list