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