]> xenbits.xensource.com Git - xen.git/commit
Update radix-tree.[ch] from upstream Linux to gain RCU awareness.
authorKeir Fraser <keir@xen.org>
Mon, 9 May 2011 08:25:23 +0000 (09:25 +0100)
committerKeir Fraser <keir@xen.org>
Mon, 9 May 2011 08:25:23 +0000 (09:25 +0100)
commit8dc6738dbb3c6117fb7e30617609f6d41e19d3b4
treea59eea5fb0832e92f0c51c06807821db76a252a4
parent31915b333f5413d3be1f9f90aace5bf8b3cedab0
Update radix-tree.[ch] from upstream Linux to gain RCU awareness.

We still leave behind features we don't need such as tagged nodes.

Other changes:
 - Allow callers to define their own node alloc routines.
 - Only allocate per-node rcu_head when using the default RCU-safe
   alloc routines.
 - Keep our own radix_tree_destroy().

In future it may also be worth getting rid of the complex and
pointless special-casing of radix-tree height==0, in which a single
data item can be stored directly in radix_tree_root. It introduces a
whole lot of special cases and complicates RCU handling. If we get rid
of it we can reclaim the 'indirect pointer' tag in bit 0 of every slot
entry.

Signed-off-by: Keir Fraser <keir@xen.org>
xen/common/radix-tree.c
xen/common/tmem.c
xen/include/xen/lib.h
xen/include/xen/radix-tree.h
xen/include/xen/rcupdate.h