Hi,
On Wed, Aug 17, 2016 at 03:39:36PM +0100, Leif Lindholm wrote:
We have an 'interesting' situation ahead of us, or indeed some of us have already fallen into it:
ARM64 platforms with > 512GB between the lowest and highest RAM addresses end up getting their amount of usable memory truncated if the kernel is built for 39-bit VA (which is what currently happens for Debian kernels). For 4.7, the arm64 defconfig was changed to enable 48-bit VA by default.
The problem is - some pieces of software have had time to be written in a ... let's charitably call it a "focused on amd64" fasion ... with the embedded assumption that anything above virtual address bit 44 is a pointer-tag free-for-all.
I suspect that we're likely to fall further into this.
ARMv8.2 bumps the maximum address limit to 52 bits [1]. Architecturally, only the upper 8 bits of address are reserved for tagging (and this has been the case since the original ARMv8-A release), and all other bits are reserved.
Given the above, it seems possible/likely that we may see address spaces of up to 56 bits in future.
So shuffling bits along a few places is only likely to buy us some time, and won't solve the problem entirely.
Thanks, Mark.