POWER: Unexpected fault when writing to brk-allocated memory
Kirill A. Shutemov
kirill at shutemov.name
Wed Nov 8 00:16:16 AEDT 2017
On Tue, Nov 07, 2017 at 02:05:42PM +0100, Florian Weimer wrote:
> On 11/07/2017 12:44 PM, Kirill A. Shutemov wrote:
> > On Tue, Nov 07, 2017 at 12:26:12PM +0100, Florian Weimer wrote:
> > > On 11/07/2017 12:15 PM, Kirill A. Shutemov wrote:
> > >
> > > > > First of all, using addr and MAP_FIXED to develop our heuristic can
> > > > > never really give unchanged ABI. It's an in-band signal. brk() is a
> > > > > good example that steadily keeps incrementing address, so depending
> > > > > on malloc usage and address space randomization, you will get a brk()
> > > > > that ends exactly at 128T, then the next one will be >
> > > > > DEFAULT_MAP_WINDOW, and it will switch you to 56 bit address space.
> > > >
> > > > No, it won't. You will hit stack first.
> > >
> > > That's not actually true on POWER in some cases. See the process maps I
> > > posted here:
> > >
> > > <https://marc.info/?l=linuxppc-embedded&m=150988538106263&w=2>
> >
> > Hm? I see that in all three cases the [stack] is the last mapping.
> > Do I miss something?
>
> Hah, I had not noticed. Occasionally, the order of heap and stack is
> reversed. This happens in approximately 15% of the runs.
Heh. I guess ASLR on Power is too fancy :)
That's strange layout. It doesn't give that much (relatively speaking)
virtual address space for both stack and heap to grow.
--
Kirill A. Shutemov
More information about the Linuxppc-dev
mailing list