TASK_UNMAPPED_BASE

Anton Blanchard anton at samba.org
Thu Feb 5 01:47:07 EST 2004



> I've seen problems with HPC apps/benchmarks with huge bss's that fail to
> run because TASK_UNMAPED_BASE is set too low.  I'll admit they fail to
> run due to a bug in the fs/binfmt_elf.c, but the fix has never been
> accepted yet.  The bug is that we don't reserve the bss region for the
> app (via a set_brk/do_brk call) until after we've loaded the loader so
> they get mapped to overlapping memory locations.  The fix is to move the
> update to current->mm.* and the set_brk/do_brk call to before the point
> we call load_elf_interp().
>
> Another bug is that the calls to set_brk/do_brk in fs/binfmt_elf.c fail to
> check whether the set_brk/do_brk calls succeeded or not, so they implicitly
> assume they do.  With an app with a huge bss, the set_brk/do_brk call actually
> returns -ENOMEM which is then ignored.  The fix is to test for failure from
> the set_brk/do_brk calls.

A patch went into 2.6 that should fix both of these problems. Give all
those nasty test cases another run :)

Anton

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list