Hi everyone,
Due to the large interest generated by the userspace RCU library, I am
releasing a 0.1 version. It should work on x86 32/64 and PowerPC.
Website URL:
http://lttng.org/urcu
What is userspace RCU: liburcu is a LGPLv2.1 userspace RCU
(read-copy-update) library. This data synchronization library provides
read-side access which scales linearly with the number of cores. It does
so by allowing multiples copies of a given data structure to live at the
same time, and by monitoring the data structure accesses to detect grace
periods after which memory reclamation is possible.
Direct link to the package:
http://www.lttng.org/files/urcu/userspace-rcu-0.1.tar.gz
There is partial support for s390 at the moment, but some atomic
primitives are currently missing for this architecture, so don't expect
the s390 architecture to build in this version.
Please let me know if you face any problems using it. As always,
feedback and patches are very welcome. See the packaged README file for
details.
Thanks,
Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Hi,
Here is a 0.2 version of the urcu library. It should clarify usage of
rcu_cmpxchg_pointer
rcu_xchg_pointer
rcu_set_pointer
which are the recommended primitives to deal with pointers.
rcu_assign_pointer(ptr, new) is provided as compatibility layer with the
Linux kernel semantic, but note that its semantic for the first
parameter is IMHO odd and differs from rcu_{cmpxchg,xchg,set}_pointer.
Website URL:
http://lttng.org/urcu
Direct link to the package:
http://www.lttng.org/files/urcu/userspace-rcu-0.2.tar.gz
Thanks,
Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Hello,
Userspace RCU 0.2.1 includes:
- small header dependency fix for rculist.h.
- new "liburcu-bp.so" : "Bulletproof RCU", made especially for the UST
userspace tracer. It's a library that sacrifices a bit of read-side
performance for automatically monitoring thread creation/removal. See
README for details.
Thanks,
Mathieu
* Mathieu Desnoyers ([email protected]) wrote:
> Hi,
>
> Here is a 0.2 version of the urcu library. It should clarify usage of
>
> rcu_cmpxchg_pointer
> rcu_xchg_pointer
> rcu_set_pointer
>
> which are the recommended primitives to deal with pointers.
> rcu_assign_pointer(ptr, new) is provided as compatibility layer with the
> Linux kernel semantic, but note that its semantic for the first
> parameter is IMHO odd and differs from rcu_{cmpxchg,xchg,set}_pointer.
>
> Website URL:
> http://lttng.org/urcu
>
> Direct link to the package:
> http://www.lttng.org/files/urcu/userspace-rcu-0.2.tar.gz
>
> Thanks,
>
> Mathieu
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Hi again,
New update. Userspace RCU 0.2.2:
- Phases out rcu_publish_content() api.
- Adds type checking to urcu-pointer.h pointer exchange primitives.
Mathieu
P.S.: maybe I should setup a mailing list for these announcements ?
Comments ?
* Mathieu Desnoyers ([email protected]) wrote:
> Hello,
>
> Userspace RCU 0.2.1 includes:
>
> - small header dependency fix for rculist.h.
> - new "liburcu-bp.so" : "Bulletproof RCU", made especially for the UST
> userspace tracer. It's a library that sacrifices a bit of read-side
> performance for automatically monitoring thread creation/removal. See
> README for details.
>
> Thanks,
>
> Mathieu
>
> * Mathieu Desnoyers ([email protected]) wrote:
> > Hi,
> >
> > Here is a 0.2 version of the urcu library. It should clarify usage of
> >
> > rcu_cmpxchg_pointer
> > rcu_xchg_pointer
> > rcu_set_pointer
> >
> > which are the recommended primitives to deal with pointers.
> > rcu_assign_pointer(ptr, new) is provided as compatibility layer with the
> > Linux kernel semantic, but note that its semantic for the first
> > parameter is IMHO odd and differs from rcu_{cmpxchg,xchg,set}_pointer.
> >
> > Website URL:
> > http://lttng.org/urcu
> >
> > Direct link to the package:
> > http://www.lttng.org/files/urcu/userspace-rcu-0.2.tar.gz
> >
> > Thanks,
> >
> > Mathieu
> >
> > --
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Hello,
Pierre-Marc contributed patches moving urcu to autotools. I would
appreciate if someone can test it on powerpc and s390 before I can
proceed to a release.
Available at:
git://lttng.org/userspace-rcu.git
See updated README for details.
Thanks,
Mathieu
* Mathieu Desnoyers ([email protected]) wrote:
> Hi again,
>
> New update. Userspace RCU 0.2.2:
>
> - Phases out rcu_publish_content() api.
> - Adds type checking to urcu-pointer.h pointer exchange primitives.
>
> Mathieu
>
> P.S.: maybe I should setup a mailing list for these announcements ?
> Comments ?
>
> * Mathieu Desnoyers ([email protected]) wrote:
> > Hello,
> >
> > Userspace RCU 0.2.1 includes:
> >
> > - small header dependency fix for rculist.h.
> > - new "liburcu-bp.so" : "Bulletproof RCU", made especially for the UST
> > userspace tracer. It's a library that sacrifices a bit of read-side
> > performance for automatically monitoring thread creation/removal. See
> > README for details.
> >
> > Thanks,
> >
> > Mathieu
> >
> > * Mathieu Desnoyers ([email protected]) wrote:
> > > Hi,
> > >
> > > Here is a 0.2 version of the urcu library. It should clarify usage of
> > >
> > > rcu_cmpxchg_pointer
> > > rcu_xchg_pointer
> > > rcu_set_pointer
> > >
> > > which are the recommended primitives to deal with pointers.
> > > rcu_assign_pointer(ptr, new) is provided as compatibility layer with the
> > > Linux kernel semantic, but note that its semantic for the first
> > > parameter is IMHO odd and differs from rcu_{cmpxchg,xchg,set}_pointer.
> > >
> > > Website URL:
> > > http://lttng.org/urcu
> > >
> > > Direct link to the package:
> > > http://www.lttng.org/files/urcu/userspace-rcu-0.2.tar.gz
> > >
> > > Thanks,
> > >
> > > Mathieu
> > >
> > > --
> > > Mathieu Desnoyers
> > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> >
> > --
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> _______________________________________________
> ltt-dev mailing list
> [email protected]
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Hi again,
Pierre-Marc and I managed to add support for:
- i386 (automatic detection enabling cmpxchg fall-back),
- i386, i486, i586 (using lock; addl instead of mfence),
- config option to support uniprocessor systems only
(--disable-smp-support) (I know we could simplify a lot more things
when this option is enabled, but let's consider this a first step),
to lib urcu. Paul tested PowerPC successfully. I tested i586. Some
testing would be welcome with i386, i486 and s390.
See: git://lttng.org/userspace-rcu.git
I might eventually get to remove the dependency on sys_futex and have a
portable library after all. ;)
Thanks,
Mathieu
* Mathieu Desnoyers ([email protected]) wrote:
> Hello,
>
> Pierre-Marc contributed patches moving urcu to autotools. I would
> appreciate if someone can test it on powerpc and s390 before I can
> proceed to a release.
>
> Available at:
>
> git://lttng.org/userspace-rcu.git
>
> See updated README for details.
>
> Thanks,
>
> Mathieu
>
>
> * Mathieu Desnoyers ([email protected]) wrote:
> > Hi again,
> >
> > New update. Userspace RCU 0.2.2:
> >
> > - Phases out rcu_publish_content() api.
> > - Adds type checking to urcu-pointer.h pointer exchange primitives.
> >
> > Mathieu
> >
> > P.S.: maybe I should setup a mailing list for these announcements ?
> > Comments ?
> >
> > * Mathieu Desnoyers ([email protected]) wrote:
> > > Hello,
> > >
> > > Userspace RCU 0.2.1 includes:
> > >
> > > - small header dependency fix for rculist.h.
> > > - new "liburcu-bp.so" : "Bulletproof RCU", made especially for the UST
> > > userspace tracer. It's a library that sacrifices a bit of read-side
> > > performance for automatically monitoring thread creation/removal. See
> > > README for details.
> > >
> > > Thanks,
> > >
> > > Mathieu
> > >
> > > * Mathieu Desnoyers ([email protected]) wrote:
> > > > Hi,
> > > >
> > > > Here is a 0.2 version of the urcu library. It should clarify usage of
> > > >
> > > > rcu_cmpxchg_pointer
> > > > rcu_xchg_pointer
> > > > rcu_set_pointer
> > > >
> > > > which are the recommended primitives to deal with pointers.
> > > > rcu_assign_pointer(ptr, new) is provided as compatibility layer with the
> > > > Linux kernel semantic, but note that its semantic for the first
> > > > parameter is IMHO odd and differs from rcu_{cmpxchg,xchg,set}_pointer.
> > > >
> > > > Website URL:
> > > > http://lttng.org/urcu
> > > >
> > > > Direct link to the package:
> > > > http://www.lttng.org/files/urcu/userspace-rcu-0.2.tar.gz
> > > >
> > > > Thanks,
> > > >
> > > > Mathieu
> > > >
> > > > --
> > > > Mathieu Desnoyers
> > > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> > >
> > > --
> > > Mathieu Desnoyers
> > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> >
> > --
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> >
> > _______________________________________________
> > ltt-dev mailing list
> > [email protected]
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> >
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68