tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Limiting malloc to the low 2GB?
On Mon, Nov 28, 2022 at 21:45:40 +0000, RVP wrote:
> On Mon, 28 Nov 2022, Valery Ushakov wrote:
>
> > Do we have a way to tell malloc on a 32-bit system to allocate memory
> > only below the 2GB boundary (on i386, including when run under amd64)?
> > I'm trying to port a(n old) program that wants to use the sign bit for
> > its internal purposes. I guess one option would be to prevent malloc
> > from using mmap (and disable alsr?) so that only sbrk (in the low 2GB)
> > is used.
>
> The standard jemalloc in the system has a compile-time flag to do this
> `--with-lg-vaddr=31'. No run-time setting possible from what I can see.
> Or, you could compile the program against the old `src/lib/libbsdmalloc'
> which only uses sbrk().
Turns out you can use MALLOC_CONF="dss:primary" to make (the new)
jemalloc prefer sbrk(2).
He man page documents that you can aslo use
const char *malloc_conf = "...";
in your program, but the variable you actually have to use is
__je_malloc_conf.
There is __weak_alias(malloc_conf, __je_malloc_conf) but that doesn't
work across DSO boundaries, I guess.
-uwe
Home |
Main Index |
Thread Index |
Old Index