At OLS, we presented some data on latency and overhead for different approaches to RCU. After some discussions with Andrea and Rusty, it seemed that it is a good idea to use this and come out with a patch. So here is a new patch. The main features are - 1. Based on rcu_poll which is already in production kernels (SuSE) and has low latency of grace period. 2. In order to reduce overheads, I added per-CPU queue support to it. 3. Works in preemptive kernel environment by either requiring the use of rcu_read_lock/unlock or using call_rcu_preempt(). 4. synchronize_kernel() uses call_rcu_preempt() which requires no disabling of preemption on read-side making it useful for things like CPU hotplug. 5. Added docbook tags in headers. Future plans are - 1. More overhead and latency measurements and tweaking around if necessary. But for infrequent things like CPU hotplug, this is not important. 2. Cleanups/bugfixes etc. Comments, suggestions and even flames are welcome. Thanks -- Dipankar Sarma http://lse.sourceforge.net Linux Technology Center, IBM Software Lab, Bangalore, India.