jmalloc in shared memory
Slawa Olhovchenkov
slw at zxy.spb.ru
Mon Mar 27 16:44:27 UTC 2017
On Mon, Mar 27, 2017 at 04:26:37PM +0000, Brooks Davis wrote:
> On Mon, Mar 27, 2017 at 04:53:33PM +0300, Slawa Olhovchenkov wrote:
> > On Mon, Mar 27, 2017 at 03:27:31PM +0200, Alexander Tarasikov wrote:
> >
> > > Hi Slawa,
> > > I'm not sure jemalloc is supposed to be used this way, but you should
> > > be able to achieve this functionality in two ways:
> > > 1. Editing jemalloc's allocator ("src/pages.c") to allocate in your
> > > region instead of calling mmap()
> > > 2. Hook mmap() and brk(), sbrk() with LD_PRELOAD and provide
> > > implementations that will allocate in the shared memory
> > >
> > > Hope this helps.
> >
> > I am don't need to redirect ALL allocations in the shared memory.
> > I am need only do it for selected structures.
> > For example, I am need create red-black tree and update it (in shared
> > memory). For this, I am need create own memory management in this
> > region or use existing memory management tool (for allocate,
> > dealloacate and tracks chunks) worked for dedicated segment only.
>
> JEMalloc is almost certainly overkill for this application. It sounds
> likely you're allocating fixed sized objects (or at least not too many
> of them). For that, a simple slab allocator should do the trick.
I am planed to allocate (and free) also strings.
JEMalloc already present in libc.
I am mean JEMalloc allow to create arena/some_other_stuff and point
this stuff in call.
> Alterntively, rtld contains a simple pooled malloc that's not hard
> to adapt to random backing stores (libexec/rtld-elf/malloc.c). I've
> got version adapted for CHERI with pluggable storage backends at
> https://github.com/CTSRD-CHERI/cheribsd/tree/master/lib/libmalloc_simple.
> It wouldn't be too hard turn it back into portable C.
Thanks, I am discover this.
More information about the freebsd-hackers
mailing list