[ltt-dev] RCU lock-free hash table and RCU Red-Black tree (was: Re: [RFC PATCH 0/7] priority-boost urcu)
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Wed Aug 17 13:12:07 EDT 2011
* Paolo Bonzini (pbonzini at redhat.com) wrote:
[...]
> What we should introduce is abstractions over futexes. This is what I
> did to experimentally port URCU to QEMU---my secret goal since commit
> 806f811 (use kernel style makefile output, 2010-03-01). :) Our use of
> futexes is exceptionally similar to a Windows manual-reset event (yes,
> Windows:
> http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent%28v=vs.80%29.aspx).
> In QEMU I added the manual-reset event and use it in the implementation
> of RCU.
Talking about qemu, have you seen my development branches with RCU
lock-free hash table and RCU red-black tree ? They are publically
available in the userspace RCU git tree:
git://git.lttng.org/userspace-rcu.git
urcu/ht (RCU lock-free hash table)
rbtree2 (RCU red-black tree)
The code works, but needs review and feedback on the API. I'm more
comfortable with the complexity level of the hash table than with that
of the red-black tree, so it might get merged into the master branch
before the rbtree. The rbtree is interesting in that it supports
range-based lookups protected only by an RCU read-side lock, very well
suited for memory map address ranges.
I'm just saying, because qemu could very certainly benefit from these
lock-free and scalable data structures.
Thanks,
Mathieu
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list