2009-09-29 21:14:50

by Mathieu Desnoyers

[permalink] [raw]
Subject: [RELEASE] Userspace RCU library (liburcu) 0.1

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


2009-10-01 14:01:10

by Mathieu Desnoyers

[permalink] [raw]
Subject: [RELEASE] Userspace RCU library (liburcu) 0.2

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

2009-10-02 17:05:47

by Mathieu Desnoyers

[permalink] [raw]
Subject: [RELEASE] Userspace RCU library (liburcu) 0.2.1

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

2009-10-05 22:10:01

by Mathieu Desnoyers

[permalink] [raw]
Subject: [RELEASE] Userspace RCU library (liburcu) 0.2.2

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

2009-10-07 21:51:36

by Mathieu Desnoyers

[permalink] [raw]
Subject: Userspace RCU library, now with autotools

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

2009-10-08 05:25:07

by Mathieu Desnoyers

[permalink] [raw]
Subject: Re: Userspace RCU library, now with autotools

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