linux-stable/Documentation/core-api
Boqun Feng f9eaaa82b4 workqueue: doc: Call out the non-reentrance conditions
The current doc of workqueue API suggests that work items are
non-reentrant: any work item is guaranteed to be executed by at most one
worker system-wide at any given time. However this is not true, the
following case can cause a work item W executed by two workers at
the same time:

        queue_work_on(0, WQ1, W);
        // after a worker picks up W and clear the pending bit
        queue_work_on(1, WQ2, W);
        // workers on CPU0 and CPU1 will execute W in the same time.

, which means the non-reentrance of a work item is conditional, and
Lai Jiangshan provided a nice summary[1] of the conditions, therefore
use it to describe a work item instance and improve the doc.

[1]: https://lore.kernel.org/lkml/CAJhGHyDudet_xyNk=8xnuO2==o-u06s0E0GZVP4Q67nmQ84Ceg@mail.gmail.com/

Suggested-by: Matthew Wilcox <willy@infradead.org>
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2021-10-25 07:18:40 -10:00
..
irq Documentation: Fix irq-domain.rst build warning 2021-09-03 09:54:15 +01:00
assoc_array.rst
boot-time-mm.rst
bus-virt-phys-mapping.rst docs: core-api: avoid using ReST :doc:foo markup 2021-06-17 13:24:37 -06:00
cachetlb.rst mm: remove flush_kernel_dcache_page 2021-09-03 09:58:13 -07:00
circular-buffers.rst
cpu_hotplug.rst Documentation: core-api/cpuhotplug: Rewrite the API section 2021-09-11 00:41:21 +02:00
debug-objects.rst
debugging-via-ohci1394.rst
dma-api-howto.rst
dma-api.rst docs: core-api: avoid using ReST :doc:foo markup 2021-06-17 13:24:37 -06:00
dma-attributes.rst dma-mapping: add a new dma_alloc_pages API 2020-09-25 06:20:47 +02:00
dma-isa-lpc.rst docs: core-api: avoid using ReST :doc:foo markup 2021-06-17 13:24:37 -06:00
errseq.rst
genalloc.rst
generic-radix-tree.rst
genericirq.rst docs: genericirq.rst: don't document chip.c functions twice 2020-10-15 07:49:41 +02:00
gfp_mask-from-fs-io.rst
idr.rst Core-api: Documentation: Replace deprecated :c:func: Usage 2020-08-11 10:26:08 -06:00
index.rst docs: core-api: avoid using ReST :doc:foo markup 2021-06-17 13:24:37 -06:00
kernel-api.rst block: move fs/block_dev.c to block/bdev.c 2021-09-07 08:39:40 -06:00
kobject.rst kobject: documentation: Replace HTTP links with HTTPS ones 2020-07-13 09:30:41 -06:00
kref.rst
librs.rst
local_ops.rst
memory-allocation.rst mm: slab: provide krealloc_array() 2020-12-15 12:13:37 -08:00
memory-hotplug.rst
mm-api.rst mm/mmzone.h: fix existing kernel-doc comments and link them to core-api 2021-04-30 11:20:43 -07:00
packing.rst
padata.rst padata: fold padata_alloc_possible() into padata_alloc() 2020-07-23 17:34:18 +10:00
pin_user_pages.rst selftests/vm: only some gup_test items are really benchmarks 2020-12-15 12:13:38 -08:00
printk-basics.rst printk: Move the printk() kerneldoc comment to its new home 2021-07-26 12:36:44 +02:00
printk-formats.rst docs: printk-formats: fix build warning 2021-07-25 14:34:32 -06:00
protection-keys.rst
rbtree.rst docs: rbtree.rst: Fix a typo 2021-03-25 11:38:51 -06:00
refcount-vs-atomic.rst
symbol-namespaces.rst docs/core-api: Consistent code style 2021-05-03 16:52:50 -06:00
this_cpu_ops.rst docs: move other kAPI documents to core-api 2020-06-26 11:33:42 -06:00
timekeeping.rst
tracepoint.rst
unaligned-memory-access.rst docs: move other kAPI documents to core-api 2020-06-26 11:33:42 -06:00
workqueue.rst workqueue: doc: Call out the non-reentrance conditions 2021-10-25 07:18:40 -10:00
xarray.rst XArray: add xas_split 2020-10-16 11:11:15 -07:00