Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 2011 20:25:50 +0400
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        freebsd-arch@FreeBSD.org, glebuis@FreeBSD.org
Subject:   Use of RCU (read-copy-update)
Message-ID:  <4EF5FD0E.9050500@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig91B66FE36B84030B8F648289
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hello list!

Questions related to RCU happens to be asked every several years, last
on was on 2010, nearly 2 years have passed, so I'm asking again (to keep
tradition).

What is RCU? RCU stands for read-copy-update locking technology that
permits users not to lock readers at all. It works by using delayed free
 which is triggered after all CPUs have flushed its cachelines.

It is now heavily used in various places in Linux kernel significantly
raising performance.

More technical information:
http://lwn.net/Articles/262464/ (general explanation from authors)
http://www.rdrop.com/users/paulmck/RCU/ (RCU "Homepage")
http://en.wikipedia.org/wiki/Read-copy-update

Previous discussions:
http://lists.freebsd.org/pipermail/freebsd-arch/2004-March/001889.html
http://lists.freebsd.org/pipermail/freebsd-arch/2006-November/005762.html=

http://lists.freebsd.org/pipermail/freebsd-current/2010-October/020320.ht=
ml


Main problem: Idea is patended:
General worlds:
http://www.groklaw.net/articlebasic.php?story=3D20061028211523142
Patents in PDF:
http://www.groklaw.net/pdf/IBM-835-Exhibit_522.pdf
http://www.groklaw.net/pdf/IBM-835-Exhibit_523.pdf
http://www.groklaw.net/pdf/IBM-835-Exhibit_524.pdf


RCU was also one of discussed topics in SCO-Linux lawsuit ( see
http://lwn.net/Articles/36164/ or
http://en.wikipedia.org/wiki/SCO_v._IBM#Increased_damages_claims.2C_and_r=
ead-copy-update_claims
)
Currently IBM holds all RCU-related patents.
Generally it is spoken that IBM permits using RCU for opensource or GPL
projects, however I can't find any official link with explanation /
conditions.

However, userland RCU project exists under LGPL: http://lttng.org/urcu

There is also (theoretially) an alternative approach implemented in
dfBSD, lwkt: see lwkt_serialize.c and lwkt_token.c in kern/
subdirectory: http://fxr.watson.org/fxr/source/kern/?v=3DDFBSD

I can't unfortunately find any finished explanation/documentation about
how it works (on SMP) and if this works at all.

It seems we need some kind of RCU to be implemented since performance
abyss (at least in networking) between us and Linux grows.


What can we do about this?
1) Do nothing.

2) Check if there a way to write and implementation non-covered by those
patents

3) Determine exact conditions under which IBM permits using RCU? (maybe
ask IBM directly?)

4) Consider the possibility of buying license from IBM (if we can
redistribute code under BSD license after that)







--------------enig91B66FE36B84030B8F648289
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk71/RgACgkQwcJ4iSZ1q2nKpQCeOiycWWvrHjiWJMtsKpe/zZEt
RFYAn3M3c6wvFZIaHxseBTbruBGaEyK7
=1kLc
-----END PGP SIGNATURE-----

--------------enig91B66FE36B84030B8F648289--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EF5FD0E.9050500>