linux/Documentation/core-api
Matthew Wilcox 2fa044e51a XArray: Add cyclic allocation
This differs slightly from the IDR equivalent in five ways.

1. It can allocate up to UINT_MAX instead of being limited to INT_MAX,
   like xa_alloc().  Also like xa_alloc(), it will write to the 'id'
   pointer before placing the entry in the XArray.
2. The 'next' cursor is allocated separately from the XArray instead
   of being part of the IDR.  This saves memory for all the users which
   do not use the cyclic allocation API and suits some users better.
3. It returns -EBUSY instead of -ENOSPC.
4. It will attempt to wrap back to the minimum value on memory allocation
   failure as well as on an -EBUSY error, assuming that a user would
   rather allocate a small ID than suffer an ID allocation failure.
5. It reports whether it has wrapped, which is important to some users.

Signed-off-by: Matthew Wilcox <willy@infradead.org>
2019-02-06 13:32:25 -05:00
..
assoc_array.rst Documentation: Use "while" instead of "whilst" 2018-11-20 09:30:43 -07:00
atomic_ops.rst locking/atomics/Documentation: Describe atomic_set() as a write operation 2018-07-17 09:30:31 +02:00
boot-time-mm.rst docs/boot-time-mm: remove bootmem documentation 2018-10-31 08:54:16 -07:00
cachetlb.rst docs: core-api: add cachetlb documentation 2018-05-08 10:02:34 -06:00
circular-buffers.rst docs: core-api: add circular-buffers documentation 2018-05-08 10:07:06 -06:00
conf.py docs: Add more manuals to the PDF build 2016-11-16 16:07:02 -07:00
cpu_hotplug.rst Documentation: Update CPU hotplug and move it to core-api 2017-01-13 10:32:32 -07:00
debug-objects.rst doc: debugobjects: actually pull in the kerneldoc comments 2016-11-29 14:44:14 -07:00
errseq.rst errseq: Add to documentation tree 2018-01-01 12:40:27 -07:00
flexible-arrays.rst Documentation: Add flexible-arrays.rst to the documentation tree 2017-03-29 14:50:21 -06:00
genalloc.rst doc: Add documentation for the genalloc subsystem 2017-08-30 16:49:04 -06:00
genericirq.rst genericirq.rst: Remove :c:func:... in code blocks 2017-12-02 08:41:46 -07:00
gfp_mask-from-fs-io.rst docs: core-api/gfp_mask-from-fs-io: add a label for cross-referencing 2018-09-20 11:02:32 -06:00
idr.rst idr: Change documentation license 2018-10-15 16:31:29 -04:00
index.rst Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
kernel-api.rst Docs/kernel-api.rst: Remove blk-tag.c reference 2019-01-03 09:18:27 -07:00
librs.rst docs-rst: convert librs book to ReST 2017-05-16 08:44:16 -03:00
local_ops.rst timer: Remove init_timer() interface 2017-11-21 15:57:09 -08:00
memory-allocation.rst Link the memory allocation guide from the MM docs 2018-11-20 09:17:40 -07:00
memory-hotplug.rst docs/core-api: memory-hotplug: add some details about locking internals 2018-10-12 11:14:19 -06:00
mm-api.rst docs/mm-api: link slab_common.c to "The Slab Cache" section 2018-12-20 08:33:21 -07:00
printk-formats.rst lib/vsprintf: Print time and date in human readable format via %pt 2018-12-10 22:39:34 +01:00
refcount-vs-atomic.rst Documentation: refcount-vs-atomic: Update reference to LKMM doc. 2018-05-08 14:52:39 -06:00
timekeeping.rst Documentation: document ktime_get_*() APIs 2018-07-23 09:16:56 -06:00
tracepoint.rst doc: Sphinxify the tracepoint docbook 2016-11-29 14:44:23 -07:00
workqueue.rst Documentation: core-api: minor workqueue.rst cleanups 2017-09-18 17:29:27 -07:00
xarray.rst XArray: Add cyclic allocation 2019-02-06 13:32:25 -05:00