Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Mar 2017 19:44:24 +0300
From:      Slawa Olhovchenkov <slw@zxy.spb.ru>
To:        Brooks Davis <brooks@freebsd.org>
Cc:        Alexander Tarasikov <alexander.tarasikov@gmail.com>, freebsd-hackers@freebsd.org
Subject:   Re: jmalloc in shared memory
Message-ID:  <20170327164424.GE70430@zxy.spb.ru>
In-Reply-To: <20170327162637.GB59667@spindle.one-eyed-alien.net>
References:  <20170320131235.GB86500@zxy.spb.ru> <CAMChaFw2Z0zQ5mBgCGxt4Yigjaa-i5oTFJFgDtGHOy6t_DXcnw@mail.gmail.com> <20170327135333.GD70430@zxy.spb.ru> <20170327162637.GB59667@spindle.one-eyed-alien.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170327164424.GE70430>