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
>
>

Reply via email to