Also, https://research.swtch.com/mm.

On Tue, 2021-09-21 at 16:22 -0500, robert engels wrote:
> This may be of interest to you:
> https://github.com/golang/go/issues/5045
>
> > On Sep 21, 2021, at 4:17 PM, Ian Lance Taylor <i...@golang.org>
> > wrote:
> >
> > On Tue, Sep 21, 2021 at 12:54 PM xie cui <cuiwei...@gmail.com>
> > wrote:
> > >
> > >
https://stackoverflow.com/questions/2599238/are-memory-barriers-necessary-for-atomic-reference-counting-shared-immutable-dat
> > > this answer say that:
> > > On x86, it will turn into a lock prefixed assembly instruction,
> > > like LOCK XADD.
> > > Being a single instruction, it is non-interruptible. As an added
> > > "feature", the lock prefix results in a full memory barrier.
> > >
> > > In my opinion, full memory barrier means flush store buffer and
> > > invalid queue(not very sure, is this right?)
> >
> > Can you be specific about exactly what you are asking?  You
> > originally
> > said "atomic instruction," and my answer was based on the functions
> > sync/atomic.LoadInt32 and sync/atomic.StoreInt32.  Here you seem to
> > be
> > talking about sync/atomic.AddInt32, which is fine, but let's agree
> > on
> > what the question is.  This is a Go language mailing list, so can
> > you
> > ask your question about a Go function, rather than about an "atomic
> > instruction"?  Thanks.
> >
> > Ian
> >
> >
> > > On Saturday, September 18, 2021 at 3:17:26 AM UTC+8 Ian Lance
> > > Taylor wrote:
> > > > On Fri, Sep 17, 2021 at 6:25 AM xie cui <cuiw...@gmail.com>
> > > > wrote:
> > > > > how atomic insturction work in golang at x86/amd64,
> > > > > I think the atomic insturtion will flush the store buffer and
> > > > > invalid queue of current cpu core,
> > > > > but I am not sure, does someone know about it?
> > > >
> > > > I assume that you are asking about the sync/atomic package. The
> > > > functions in that package will ensure sequential consistency of
> > > > atomic
> > > > operationns, but they will not flush the store buffer. See
> > > > https://research.swtch.com/gomm .
> > > >
> > > > Ian
> > >


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/701c528b93cbaf7c5519e4831473195ebb8c7604.camel%40kortschak.io.

Reply via email to