[lttng-dev] [rp] [RFC PATCH urcu] document concurrent data structures
Paul E. McKenney
paulmck at linux.vnet.ibm.com
Tue May 15 00:12:38 EDT 2012
On Mon, May 14, 2012 at 11:36:04PM -0400, Mathieu Desnoyers wrote:
> Document the concurrent data structures provided by the userspace RCU
> library.
Looks good to me!
Reviewed-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
> diff --git a/doc/cds-api.txt b/doc/cds-api.txt
> new file mode 100644
> index 0000000..7a3c6e0
> --- /dev/null
> +++ b/doc/cds-api.txt
> @@ -0,0 +1,59 @@
> +Userspace RCU Concurrent Data Structures (CDS) API
> +by Mathieu Desnoyers and Paul E. McKenney
> +
> +
> +This document describes briefly the data structures contained with the
> +userspace RCU library.
> +
> +urcu/list.h:
> +
> + Doubly-linked list, which requires mutual exclusion on updates
> + and reads.
> +
> +urcu/rculist.h:
> +
> + Doubly-linked list, which requires mutual exclusion on updates,
> + allows RCU read traversals.
> +
> +urcu/hlist.h:
> +
> + Doubly-linked list, with single pointer list head. Requires
> + mutual exclusion on updates and reads. Useful for implementing
> + hash tables. Downside over list.h: lookup of tail in O(n).
> +
> +urcu/rcuhlist.h:
> +
> + Doubly-linked list, with single pointer list head. Requires
> + mutual exclusion on updates, allows RCU read traversals. Useful
> + for implementing hash tables. Downside over rculist.h: lookup of
> + tail in O(n).
> +
> +urcu/rculfqueue.h:
> +
> + RCU queue with lock-free enqueue, lock-free dequeue. RCU used to
> + provide existance guarantees.
> +
> +urcu/wfqueue.h:
> +
> + Queue with wait-free enqueue, blocking dequeue. This queue does
> + _not_ use RCU.
> +
> +urcu/rculfstack.h:
> +
> + RCU stack with lock-free push, lock-free dequeue. RCU used to
> + provide existance guarantees.
> +
> +urcu/wfstack.h:
> +
> + Stack with wait-free enqueue, blocking dequeue. This stack does
> + _not_ use RCU.
> +
> +urcu/rculfhash.h:
> +
> + Lock-Free Resizable RCU Hash Table. RCU used to provide
> + existance guarantees. Provides scalable updates, and scalable
> + RCU read-side lookups and traversals. Unique and duplicate keys
> + are supported. Provides "uniquify add" and "replace add"
> + operations, along with associated read-side traversal uniqueness
> + guarantees. Automatic hash table resize based on number of
> + elements is supported. See the API for more details.
>
> --
> Mathieu Desnoyers
> Operating System Efficiency R&D Consultant
> EfficiOS Inc.
> http://www.efficios.com
>
> _______________________________________________
> rp mailing list
> rp at svcs.cs.pdx.edu
> http://svcs.cs.pdx.edu/mailman/listinfo/rp
>
More information about the lttng-dev
mailing list