Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 13 Dec 2015 16:25:30 +0100
From: Jens Gustedt <jens.gustedt@...ia.fr>
To: musl@...ts.openwall.com
Subject: Re: stdatomic implementation

Hello,

Am Sonntag, den 13.12.2015, 15:59 +0100 schrieb Szabolcs Nagy:
> * Jens Gustedt <jens.gustedt@...ia.fr> [2015-12-13 11:01:22 +0100]:
> > Its integration into musl should be straight forward and remains my
> > primary choice for having it distributed. You can find it at
> > 
> > stdatomic.gforge.inria.fr
> > 
> 
> nice
> 
> i recently run into a problem that you may be interested in:
> the gcc atomic builtins do not handle atomic pointer types as
> expected.
> 
> T *p;
> __atomic_fetch_add(&p,1);
> 
> adds 1 to (char*)p instead of sizeof(T).
> 
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64843

thanks, I wasn't aware of that one.

FYI in a recent DR about atomics, among other things, I pointed on the
missing specification of atomic_fetch_add for pointer types. I think I
can safely say that the consensus among the committee for that
specific problem was to say that this was just an omission in
C11. Unfortunately, that DR opened a whole can of worms about atomics.
I was asked to cut it down in smaller pieces that will easier to
tackle with the DR process.

> > Under the hood it uses a new lock algorithm based on futex waits for
> > the slow path, that has proven to be more efficient than anything else
> > that I looked at: musl's internal lock, mtx_t or pthread_mutex_t, or
> > spinlocks. You can find a discussion of that at
> > 
> > https://hal.inria.fr/hal-01236734
> > 
> > Before I go (more) public with this, I would very much like to hear
> > what you think.
> 
> i havent read the paper yet but it is worth noting that
> glibc implements weaker pthread semantics than musl, so
> on glibc pthread_mutex_lock/unlock is acquire/release.
> (which makes pthread_mutex_trylock non-conforming, but
> it's closer to the c11 semantics, same for spinlocks).

Hm, interesting. From our lengthy discussion, here, about mutexes and
conditions last year I had the vague impression that for musl also
this was more-or-less acquire/release, at least to completely seq_cst,
either.

> so it would be interesting to benchmark against glibc
> primitives too.

Yes, probably, also it would be interesting to have it on more
architectures and for more test cases.

Thanks

Jens

-- 
:: INRIA Nancy Grand Est ::: Camus ::::::: ICube/ICPS :::
:: ::::::::::::::: office Strasbourg : +33 368854536   ::
:: :::::::::::::::::::::: gsm France : +33 651400183   ::
:: ::::::::::::::: gsm international : +49 15737185122 ::
:: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::




Download attachment "signature.asc" of type "application/pgp-signature" (182 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.