Ok, I'll get both of these committed.

Brian

On Tue, Mar 19, 2013 at 4:18 PM, John Plevyak <[email protected]> wrote:

> Definitely should do that as well.
>
> john
>
> On Tue, Mar 19, 2013 at 4:04 PM, Brian Geffon <[email protected]>
> wrote:
>
> > Thanks John!
> >
> > Someone else mentioned that we might need to force the head_p to be 16
> byte
> > aligned, what are your thoughts?
> >
> > -  } head_p;
> > +  } __attribute__ ((aligned (16))) head_p;
> >
> >
> > Thanks.
> > Brian
> >
> > On Tue, Mar 19, 2013 at 3:47 PM, John Plevyak <[email protected]> wrote:
> >
> > > I believe the problem is with INK_QUEUE_LD which is not atomic:
> > >
> > > diff --git a/lib/ts/ink_queue.h b/lib/ts/ink_queue.h
> > > index 6ac9945..20fbf9a 100644
> > > --- a/lib/ts/ink_queue.h
> > > +++ b/lib/ts/ink_queue.h
> > > @@ -72,7 +72,7 @@ extern "C"
> > >  #endif
> > >
> > >  #if TS_HAS_128BIT_CAS
> > > -#define INK_QUEUE_LD(dst,src) *((__int128_t*)&(dst)) =
> > > *((__int128_t*)&(src))
> > > +#define INK_QUEUE_LD(dst,src) *(__int128_t*)&(dst) =
> > > __sync_fetch_and_add((__int128_t*)&(src), 0)
> > >  #else
> > >  #define INK_QUEUE_LD(dst,src) INK_QUEUE_LD64(dst,src)
> > >  #endif
> > >
> > > This fixes the problem.
> > >
> > > On Mon, Mar 18, 2013 at 9:31 PM, Brian Geffon <[email protected]>
> wrote:
> > >
> > > > Hey, I'm looking into the failing freelist tests using the precise64
> > > > vagrant box. If I can't figure it out tonight I'll just disable the
> > check
> > > > in configure.ac to get things stable again for the time being. If
> > anyone
> > > > else has some time to help out with this, I'd really appreciate it.
> > > >
> > > > Brian
> > > >
> > > > On Mon, Mar 18, 2013 at 9:49 AM, James Peach <[email protected]>
> > wrote:
> > > >
> > > > > Hi Brian,
> > > > >
> > > > > I finally fixed the autoconf tests for TS_HAS_128BIT_CAS.
> > Unfortunately
> > > > > test_freelist fails on all the platforms that I have access to. I'm
> > > > > assuming that on your platforms it succeeds, so maybe there's
> > something
> > > > > about the version of gcc you are using that makes it work.
> > > > >
> > > > > Since I don't really know which platforms this is working for, what
> > do
> > > > you
> > > > > think about reverting this?
> > > > >
> > > > > J
> > > >
> > >
> >
>

Reply via email to