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>