[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: process max virtual memory limit in amd64?

> Are all of the high-order n bits of virtual addresses unused?  I seem
> to remember a lecture about the UltraSparc CPUs using the high-order
> bit of virtual addresses, followed by n unused bits, followed by
> (63-n) bits that are used.  In this way, the kernel can be loaded at
> 0x8000000000000000, and that will never be equivalent to 0x0.  This
> means that the Solaris kernel needs no modification when Sun increases
> the number of bits in virtual addresses that get used (decreasing n,
> the number of bits that are ignored.)  I would assume AMD64 CPUs use
> the same strategy, but I have not read enough documentation.

I think you can also do this without hardware hacks by sign-extending 
addresses, rather than zero-extending them.  Then put the kernel at the very 
top of the address space and allocate downwards.
I don't know what amd64 does.


Reply to: