On Sat, May 24, 2008 at 09:03:21PM -0700, Christopher Smith wrote:

You missed my primary point: few if any 64-bit processors can manage the full 2^64 virtual address space. Heck, the first Alphas couldn't handle more than 2^36 or 2^38 (I can't remember which). Sure they are were using 64-bit pointers, but you had to zero out the top bits. This remains the reality to this day (although address spaces are obviously larger), it is entirely possible to hit virtual address space limits *well before* 2^64, even on 64-bit architectures.

Most x86_64's these days have 48-bits of virtual address space (the minimum
the architecture requires).  It's not quite zeroing out the top bits, since
all of the top bits must be the same (kind of like sign extension).  But,
only 47 bits of addressing are available to user-space processes, and the
OS might use a few more of those.

Practically, this restricts a process to tends of TB of address space left
over for something like mapping of disk drives.

This is sufficient for managing the mapping of most files in current usage,
but there are certainly disks and filesystems that are larger than this.

David

--
KPLUG-LPSG@kernel-panic.org
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to