Port-mips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: atomic_ops(3) and sync
On Wed, Jun 16, 2010 at 12:54:35PM +0300, Antti Kantee wrote:
> On Wed Jun 16 2010 at 11:35:05 +0200, Manuel Bouyer wrote:
> > hi,
> > I just noticed that our atomic_ops(3) don't include a sync instruction.
> > >From what I've seen in the mips documents, neither ll nor sc is a memory
> > barrier, so our atomic_ops are no memory barrier either, and callers
> > have to add a sync instruction before atomic calls.
> > Is this the desired behavior, or should a sync be added in atomic_ops ?
>
> This behaviour is documented in atomic_ops(3) (your email does not
> provide clear indication as to if you read that part of the manpage,
> so I'll just quote it here):
>
> Atomic operations are strongly ordered with respect to each other.
> The global visibility of other loads and stores before and after an
> atomic operation is undefined. Applications that require synchro-
> nization of loads and stores with respect to an atomic operation must
> use memory barriers. See membar_ops(3).
>
> So if you want to impose ordering on other accesses with respect to the
> atomic op you need to manually add membars. Atomic itself does not,
> and should not, guarantee it.
OK, thanks. I didn't spot this from the man page. I'm still in
a x86-centric world I guess ...
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index