Yeah I am curious too, how could it make ATS unstable. It's a pretty popular library. Maybe ATS has a mismatch of malloc/free etc.something that is masked by the free list?
On Tue, Dec 11, 2018 at 3:19 PM Walt Karas <wka...@oath.com.invalid> wrote: > I thought jemalloc is used as a drop-in replacement for the standard lib > heap functions / operators. So how can the freelist stuff not work with > it? > > On Tue, Dec 11, 2018 at 4:48 PM Bryan Call <bc...@apache.org> wrote: > > > There is no point in cleaning up the code if the plan is to not use it > and > > remove it from our codebase. Work should be done on proving that > jemalloc > > is valid alternative. > > > > If jemalloc doesn’t prove to workout, then we might look at cleaning up > > the freelist. > > > > -Bryan > > > > > On Dec 10, 2018, at 5:42 PM, Walt Karas <wka...@oath.com.INVALID> > wrote: > > > > > > As far as one can tell is a big limitation with code like: > > > > > > #if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && > > >> (SIZEOF_VOIDP == 4) > > >> > > >> #define FREELIST_POINTER(_x) (_x).s.pointer > > >> > > >> #define FREELIST_VERSION(_x) (_x).s.version > > >> > > >> #define SET_FREELIST_POINTER_VERSION(_x, _p, _v) \ > > >> > > >> (_x).s.pointer = _p; \ > > >> > > >> (_x).s.version = _v > > >> > > >> #elif TS_HAS_128BIT_CAS > > >> > > >> #define FREELIST_POINTER(_x) (_x).s.pointer > > >> > > >> #define FREELIST_VERSION(_x) (_x).s.version > > >> > > >> #define SET_FREELIST_POINTER_VERSION(_x, _p, _v) \ > > >> > > >> (_x).s.pointer = _p; \ > > >> > > >> (_x).s.version = _v > > >> > > >> #elif defined(__x86_64__) || defined(__ia64__) || > defined(__powerpc64__) > > >> || defined(__aarch64__) || defined(__mips64) > > >> > > >> #define FREELIST_POINTER(_x) \ > > >> > > >> ((void *)(((((intptr_t)(_x).data) << 16) >> 16) | > > >> (((~((((intptr_t)(_x).data) << 16 >> 63) - 1)) >> 48) << 48))) // sign > > >> extend > > >> > > >> #define FREELIST_VERSION(_x) (((intptr_t)(_x).data) >> 48) > > >> > > >> #define SET_FREELIST_POINTER_VERSION(_x, _p, _v) (_x).data = > > >> ((((intptr_t)(_p)) & 0x0000FFFFFFFFFFFFULL) | (((_v)&0xFFFFULL) << > 48)) > > >> > > >> #else > > >> > > >> #error "unsupported processor" > > >> > > >> #endif > > >> > > > > > > > > > > > > > > > On Mon, Dec 10, 2018 at 5:02 PM Leif Hedstrom <zw...@apache.org> > wrote: > > > > > >> > > >> > > >>> On Dec 10, 2018, at 10:29 AM, SUSAN HINRICHS <shinr...@ieee.org> > > wrote: > > >>> > > >>> Based on Fei's measurements, the ATS freelists provide no benefit > over > > >>> jemalloc. We are now in a position to do larger tests over our > > >> production > > >>> installs. > > >> > > >> > > >> Agreed, that was generally what I noticed too, except, I could not get > > ATS > > >> to be stable with just jemalloc. It’d eventually get unhappy, but I > > didn’t > > >> investigate further. But this is my point, lets focus the efforts on > > moving > > >> us forward, to jemalloc, and not mess around with freelist as it is, > > >> because it works fine as far as I can tell. > > >> > > >> — leif > > >> > > >> > > > > > -- pushkar