[sorry for the late answer, I missed your mail earlier and only found it now]
On Thu, Dec 21, 2000 at 01:25:42PM -0800, Paul McKenney wrote:
> I believe that read-copy update will be very helpful to increase Linux's
> ability to scale, while also keeping Linux's great single-CPU performance.
Thanks a lot for these references. I have not 100% digested your paper
yet, but it looks very useful so far. A few datastructures
in Linux come immediately to mind where this approach could help a lot:
e.g. Linux 2.4 networking and VFS have developed far too many reference
counters in the recent SMP work, causing lots of locked cycles because
these need to be updated atomically. Another very ugly problem where it
could be used is the module unload problem: with the drop of the big kernel
lock module unloading and kernel code often runs completely multithreaded,
which causes lots of interesting races (the current fixes is adding even
more reference counters and even module pointers to all kind of shared
objects, slow and ugly). It would be very exciting to clean all that mess up.
Linux did go a bit in this direction already with the big-reader locks
(see include/linux/brlock.h in a 2.4 tree). We also considered stop-the-world
schemes for really infrequent events (like the change of the ip protocol table),
but forgot it because on big CPU systems it is possible that such an operation
would never succeed.
The quiescent state approach looks much better than the brlocks of course.