John Summerfield:
>Does this mean "Use 64-bit VM?"
I hadn't really put VM into the equation; this can
change things again, in particular due to the issues
current VM releases have with supporting > 2GB guest
storage efficiently ...
But of course in order to run a 64-bit Linux kernel
you certainly need a VM that supports 64-bit guests.
>> 3. 64-bit arithmetic
>> If your application performs 64-bit arithmetic ('long long' data types),
>> you will benefit from the fact that those are implemented as native
>> assembler instructions on 64-bit. (However, most applications don't
>> do that ...)
>
>Picky, I know, but they all do. File sizes are 64-bit, and probably some
>other system datatypes too.
Yeah, I should have said, if your application performs
64-bit arithmetic at a point where it is performance-
relevant. And there it is indeed the case that most
application don't do that, because their performance-
critical parts were usually carefully engineered to
avoid the use of 64-bit arithmetic ;-)
>> 5. Memory management overhead
>> On the negative side, on a 64-bit system virtual address spaces
>> are managed via three-level instead of two-level page tables.
>> This implies a (slight) additional overhead both for the kernel
>> when performing any operation on the page tables and for the
>> processor itself when performing a page table lookup.
>
>Is this so even when the actual storage size doesn't warrant it?
Yes. (In a 64-bit application, the application code is
mapped to 2GB and the stack to 2TB, so you always need a
three-level page table.)
>Those who were technically-involved with OS/2 will recall the term
>"thunking," referring to the mapping of addresses between 16-bit code
>and 32-bit, both for 16-bit applications and for drivers.
>
>Is there a similar issue with moxed-mode operations on the Zeds?
Not really.
The point of 'thunking' was to run 16-bit and 32-bit functions
within the *same* process. The 31-bit emulation mode on Linux
is different: you can run a 31-bit *process*, but that means that
all code within that process is 31-bit. There are no calls
between 31-bit and 64-bit code that would need thunks. (The
only exception is that system calls need to convert the 31-bit
syscall arguments to the format the 64-bit kernel expects.)
Bye,
Ulrich
--
Dr. Ulrich Weigand
[EMAIL PROTECTED]