idr synchronization (stolen from radix-tree.h)
idr_find
is able to be called locklessly, using RCU. The caller must
ensure calls to this function are made within rcu_read_lock
regions.
Other readers (lock-free or otherwise) and modifications may be running
concurrently.
It is still required that the caller manage the synchronization and
lifetimes of the items. So if RCU lock-free lookups are used, typically
this would mean that the items have their own locks, or are amenable to
lock-free access; and that the items are freed by RCU (or only freed after
having been deleted from the idr tree *and* a synchronize_rcu
grace
period).
IDA - IDR based ID allocator
This is id allocator without id -> pointer translation. Memory usage is much lower than full blown idr because each id only occupies a bit. ida uses a custom leaf node which contains IDA_BITMAP_BITS slots.
2007-04-25 written by Tejun Heo <htejungmail
.com>