Re: Wait Free Proxy Collector



On Tue, 29 Jan 2008 06:01:42 -0800, Dmitriy Vyukov wrote:

On Jan 29, 3:19 am, "Chris Thomasson" <cris...@xxxxxxxxxxx> wrote:

There was one proxy thing I did but never published which used an N=2
scheme


Yeah, but Paul E. McKenney was published it. And he didn't forget to
fill in patent too :)
I'm talking about his real-time RCU with 2 counters per processor.

Well, it seems like that flavor of RCU still cannot reference count an
arbitrary number of references outside of RCU protected regions. Try and
to virtually zero-overhead distributed reference counted message passing
with RCU as-is...

;^)



, sounds like your doing same thing here. It did not use atomics, but
it did require a single #StoreLoad barrier before a thread could enter
a proxy collected region. I was trying to come up with atomic-free, but
not membar free, proxy designs to test against vZOOM PDR to see what
kind of impact the membar has. Turns out, the overhead can be quite
significant indeed.


I bet you:
1. store some per-thread data
2. allow arbitrary amount of completely unused garbage hanging around
and "waiting for next epoch"

If yes, then it's already more like RCU then PC.

Yeah; you right. Humm.
.



Relevant Pages

  • Re: [PATCH 0/6] files: rcuref APIs
    ... Adds a set of primitives to do reference counting for objects ... that are looked up without locks using RCU. ... * rcuref_inc - increment refcount for object. ... * @rcuref: reference counter in the object in question. ...
    (Linux-Kernel)
  • [PATCH 3/4] convert rcuref
    ... Use atomic_inc_not_zero for rcu files instead of specal case rcuref. ... * kernel for reference counting. ... * in a lock-free reader-side critical section. ...
    (Linux-Kernel)
  • [patch 4/5] rcu file: use atomic primitives
    ... Use atomic_inc_not_zero for rcu files instead of specal case rcuref. ... * kernel for reference counting. ... * in a lock-free reader-side critical section. ...
    (Linux-Kernel)
  • [patch 4/5] rcu file: use atomic
    ... Use atomic_inc_not_zero for rcu files instead of specal case rcuref. ... * kernel for reference counting. ... * in a lock-free reader-side critical section. ...
    (Linux-Kernel)
  • Re: [rfc: patch 2/6] rcuref APIs
    ... Adds a set of primitives to do reference counting for objects ... that are looked up without locks using RCU. ... * rcuref_inc - increment refcount for object. ... * @rcuref: reference counter in the object in question. ...
    (Linux-Kernel)