Memory Limits on Linux on x86

Mark Hahn hahn at physics.mcmaster.ca
Fri Jul 19 11:05:59 PDT 2002


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

so the split is arbitrary, for some limited subset of arbitrary values ;)

as I dimly recall, it has to be at 4G - power-of-two, 
so 1, 2, 3, 3.125, 3.5, 3.75. 3.875 G should all work.

as Don points out, all of this applies only to modern kernels, not 2.2...

> 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
> copying.
> 
> 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.

but aren't there other masters that you'd really like to be 64b-capable?  
like, as a *completely* random example, a NIC?




More information about the Beowulf mailing list