Remix.run Logo
cornstalks 4 days ago

What kind of setups use over 256 TiB of RAM?

TapamN 4 days ago | parent | next [-]

It not necessarily physical RAM. If you memmap large files, like maybe a large file from RAID or network share, you could still need that much virtual address space.

Dylan16807 2 days ago | parent [-]

Do many programs want to use that much data but not control when it swaps in and out?

wittystick 2 days ago | parent [-]

No, but 5-level paging is opt-in anyway, so its presence isn't problematic if assuming a 48-bit address space. Linux won't allocate space outside the 48-bits unless you give an address hint to mmap outside the 48-bit range.

bonzini 4 days ago | parent | prev | next [-]

In practice it's over 64 TiB because kernels often use a quarter of the available addressing space (half of the kernel addressing space) to map the physical addresses (e.g. FFFFC000_12345678 maps physical address 0x12345678). So 48 virtual address bits can be used with up to 2^46 bytes of RAM.

hinkley 4 days ago | parent [-]

And how long has 48 bit addressing been de rigeur? Not so long ago we had processors that could address 40 bits of address space. Or was that 38?

winocm 4 days ago | parent | next [-]

At least since maybe the DEC Alpha 21264. It could address 48-bits of VA space, but that comes with caveats due to PALcode specific intricacies.

I think VMS (or was it Tru64?) uses this mode, but many other OSes just use 43-bit or 40-bit addressing. Realistically though, I don’t think many users would be using workloads that addressed more than 38-bits worth of contiguous VA space in 1998-1999.

4 days ago | parent | prev | next [-]
[deleted]
loeg 4 days ago | parent | prev [-]

amd64 has had 48-bit addressing / 4-level paging from the beginning.

hinkley 3 days ago | parent [-]

I must be thinking of intel’s failed 64 bit attempts prior to amd64 winning.

wittystick 2 days ago | parent [-]

Physical addresses may be limited to 40 bits, but 48-bit virtual addresses have been the norm since 4-level paging.

reorder9695 4 days ago | parent | prev [-]

"640k ought to be enough for anybody"