On Wed, Aug 17, 2016 at 04:03:07PM +0100, Mark Rutland wrote:
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.
Absolutely - but it's still something we need to do, now.
And I'm hoping that by the time > 48-bit VA becomes an issue, it will be an issue for Intel also, and we won't need to do all of the lifting on the ARM side.
/ Leif