Re: POWER: Unexpected fault when writing to brk-allocated memory

From: Matthew Wilcox
Date: Thu Nov 09 2017 - 14:44:36 EST


On Fri, Nov 10, 2017 at 04:15:26AM +1100, Nicholas Piggin wrote:
> So these semantics are what we're going with? Anything that does mmap() is
> guaranteed of getting a 47-bit pointer and it can use the top 17 bits for
> itself? Is intended to be cross-platform or just x86 and power specific?

It is x86 and powerpc specific. The arm64 people have apparently stumbled
across apps that expect to be able to use bit 48 for their own purposes.
And their address space is 48 bit by default. Oops.

> Also, this may follow from deduction from 1-3, but for explicit
> specification in man page:
>
> 4) To get an unspecified allocation with the largest possible address range,
> we pass in -1 for mmap hint.
>
> Are we allowing 8 bits bits of unused address in this case, or must the
> app not assume anything about number of bits used?

Maybe document it as: "If the app wants to use the top N bits of addresses
for its own purposes, pass in (~0UL >> N) as the mmap hint." ?