[ltt-dev] [PATCH 3/3] lock-free queue with RCU-based garbage collection
Paolo Bonzini
pbonzini at redhat.com
Fri Mar 12 04:45:38 EST 2010
On 03/11/2010 11:09 PM, Mathieu Desnoyers wrote:
> It could be nice to try separating memory allocation from this lockless
> queue implementation. I think they belong to different problem space,
> and that we should just let the users provide whatever allocator they
> use. Possibly, if you need internal copies within your data structure,
> that the caller should pass pointers to its malloc/free implementation.
True. Before that, the implementation would need to be genericized, as
right now it's just a test file.
> Then providing a lock-free malloc/free could come as a separate lib.
Or an RCU-based malloc/free. :-)
Regarding the articles, I'll add a note. It's basically only "Fast and
Practical Non-Blocking and Blocking Concurrent Queue Algorithms", by
Maged Michael and Michael Scott (1996), except that I don't use
double-word compare-and-swap, and that this RCU-friendly allocation
strategy is "invented" by me.
@inproceeding{Michael96podc,
author = {Maged M. Michael and Michael L. Scott},
title = {Fast and Practical Non-Blocking and Blocking Concurrent
Queue Algorithms},
booktitle = {Proc. 15th ACM Symp. on Principles of Distributed
Computing},
year = {1996},
pages = {267--275},
url = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.86.8494}
}
Paolo
More information about the lttng-dev
mailing list