Paul Coccoli wrote:
Thanks Paul :)
As I said, the Portaudio ringbuffer passes the test even with memory barriers
deactivated. But the lack of memory barriers in jack code was the reason I wrote
this test, please read the whole thread for links to relevant documents.
Yeah, at PulseAudio they say that the way jack ringbuffer uses volatile is wrong.
Anyway, I've read a lot of different (and very opposed) point of views on these
matters, and IMO there's nothing like thorough testing to sort this out.
To figure whether memory barriers are needed or not, we need to run the test on
For this purpose, I've set up a small svn repo with everything to run the test
easily. There's no dependency, you just need pthread, gcc and sh.
Here's how to run the test:
svn co http://svn.samalyse.com/misc/rbtest
It tests the ringbuffers from (all included) jack, portaudio and portaudio
without barriers. That can take up to 6 minutes. It has to be a bit long due to
the probabilistic nature of failures.
LAUsers could you please run this test on various architectures? Especially
PowerPC single-cpu and SMP, x86 single-cpu, SMP, in various flavors, etc...
Olivier Guilyardi / Samalyse
Linux-audio-user mailing list