Subj : Re: full-blown experiential smr-based reference counted pointer impl... To : comp.programming.threads From : Chris Thomasson Date : Fri Apr 01 2005 10:16 pm >>> Yes. Though with classical RCU the quiesent states aren't so near the >>> critical >>> regions and the membars are around the quiesent state itself, so they're >>> not >>> near the critical regions either Humm... I guess you might be able to emulate this beneficial behavior with user-space RCU. For instance... If user application logic happens to consume a batch of events from a server workqueue, executes the batch, then goes back to the queue to "wait" for more batches of objects to be pushed. The "wait" in this case could be considered a "natural user-application" quiescent point. The user would process multiple events ( the batch ) before the quiescent state shift happens, thus the depth of the batch affects the distance between the per-thread quiescent state transition points... Any thoughts? > With classical RCU, the quiescent states are voluntary context switches, > so > the RCU read lock and unlock macros are no-ops. That's about as less > overhead as you can get. Yeah. I was considering collection pop function that blocks when empty to be a "voluntary" user-space context switch of sorts... > "classical RCU". It's been around for about 20 years now. :) ;) .