On Mon, Oct 01, 2007 at 08:57:10PM -0600, Thayne Harbaugh wrote:
Your perspective seems quite narrow. Only using 2GB instead of 4GB
is a major functional difference.
Negative error values are used in all system calls, so it would
hardly seem necessary to encode the use of the 32th bit for that
in the option name.
For mmap you can emulate it by passing a low hint != 0 (e.g. getpagesize())
in address but without MAP_FIXED and checking if the result is not beyond
your range.
That would limit the 32bit architectures to 2GB; but their real limit
is 4GB. Losing half of the address space definitely would make users unhappy
(e.g. at least normal Linux kernels wouldn't run at all)
The reason it's only 2GB is that the flag was added to support the small
code model of x86-64, which is limited to 2GB (31bit). Yes it's misnamed.
But it's not used for the 32bit compat code.
It doesn't really for that case
I guess you mean inconsistent.
Does qemu actually need mremap() ? It would surprise me because
a lot of other OS don't implement it.
-Andi
-