On Mar 30, 2018, at 08:31 AM, INADA Naoki <songofacandy@gmail.com> wrote:

Hi,

As far as I know, most amd64 and arm64 systems use only 48bit address spaces.
(except [1])

[1] https://software.intel.com/sites/default/files/managed/2b/80/5-level_paging_white_paper.pdf

It means there are some chance to compact some data structures.
I point two examples below.

My question is; can we use 48bit pointer safely?

Not really, at least some CPUs can also address more memory than that. See <https://lwn.net/Articles/717293/> which talks about Linux support for 57-bit virtual addresses and 52-bit physical addresses. 

Ronald