Re: ppc elf_map breakage with MAP_FIXED_NOREPLACE

From: Michal Hocko
Date: Tue Jan 23 2018 - 11:07:02 EST


On Tue 23-01-18 21:28:28, Anshuman Khandual wrote:
> On 01/23/2018 06:15 PM, Michal Hocko wrote:
> > On Tue 23-01-18 16:55:18, Anshuman Khandual wrote:
> >> On 01/17/2018 01:37 PM, Michal Hocko wrote:
> >>> On Thu 11-01-18 15:38:37, Anshuman Khandual wrote:
> >>>> On 01/09/2018 09:43 PM, Michal Hocko wrote:
> >>> [...]
> >>>>> Did you manage to catch _who_ is requesting that anonymous mapping? Do
> >>>>> you need a help with the debugging patch?
> >>>>
> >>>> Not yet, will get back on this.
> >>>
> >>> ping?
> >>
> >> Hey Michal,
> >>
> >> Missed this thread, my apologies. This problem is happening only with
> >> certain binaries like 'sed', 'tmux', 'hostname', 'pkg-config' etc. As
> >> you had mentioned before the map request collision is happening on
> >> [10030000, 10040000] and [10030000, 10040000] ranges only which is
> >> just a single PAGE_SIZE. You asked previously that who might have
> >> requested the anon mapping which is already present in there ? Would
> >> not that be the same process itself ? I am bit confused.
> >
> > We are early in the ELF loading. If we are mapping over an existing
> > mapping then we are effectivelly corrupting it. In other words exactly
> > what this patch tries to prevent. I fail to see what would be a relevant
> > anon mapping this early and why it would be colliding with elf
> > segements.
> >
> >> Would it be
> >> helpful to trap all the mmap() requests from any of the binaries
> >> and see where we might have created that anon mapping ?
> >
> > Yeah, that is exactly what I was suggesting. Sorry for not being clear
> > about that.
> >
>
> Tried to instrument just for the 'sed' binary and dont see any where
> it actually requests the anon VMA which got hit when loading the ELF
> section which is strange. All these requested flags here already has
> MAP_FIXED_NOREPLACE (0x100000). Wondering from where the anon VMA
> actually came from.

Could you try to dump backtrace?
--
Michal Hocko
SUSE Labs