From owner-freebsd-arch@FreeBSD.ORG Wed Feb 18 12:56:58 2004 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D274916A4CE for ; Wed, 18 Feb 2004 12:56:58 -0800 (PST) Received: from herring.nlsystems.com (mailgate.nlsystems.com [80.177.232.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6EADE43D2D for ; Wed, 18 Feb 2004 12:56:58 -0800 (PST) (envelope-from dfr@nlsystems.com) Received: from [10.0.0.2] (herring.nlsystems.com [10.0.0.2]) by herring.nlsystems.com (8.12.10/8.12.8) with ESMTP id i1IKukF1028228 for ; Wed, 18 Feb 2004 20:56:46 GMT (envelope-from dfr@nlsystems.com) From: Doug Rabson To: freebsd-arch@freebsd.org Content-Type: text/plain Message-Id: <1077137806.28133.10.camel@herring.nlsystems.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 18 Feb 2004 20:56:46 +0000 Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on herring.nlsystems.com Subject: Read Copy Update X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 20:56:59 -0000 So, I was reading the latest installment of the SCO soap on slashdot today (bizarre - they seem to be claiming that they own all code that was ever linked to a System V kernel) and I ended up trying to figure out exactly what this RCU thing is that they claim is infringing their right to obtain money with menaces. I read one of the original papers at http://www.rdrop.com/users/paulmck/paper/rclockpdcsproof.pdf and its a surprisingly simple idea. Basically for certain data structures which are read-mostly, you can make the entire read path lock-free at the expense of making updates quite a bit more expensive. They claim that its much faster than reader-writer locks both for light contention and for heavy contention. I imagine that a FreeBSD implementation of RCU wouldn't actually be too hard and it might be well worth it as an alternative way of managing concurrency, e.g. for the routing cache and the name cache (and probably lots of other things).