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