Merge branch 'for-4.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq

Pull workqueue fixlet from Tejun Heo:
 "Minor documentation update"

* 'for-4.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
  Documentation: core-api: minor workqueue.rst cleanups
This commit is contained in:
Linus Torvalds 2017-10-03 10:44:03 -07:00
commit d81fa669e3

View File

@ -39,8 +39,8 @@ up.
Although MT wq wasted a lot of resource, the level of concurrency Although MT wq wasted a lot of resource, the level of concurrency
provided was unsatisfactory. The limitation was common to both ST and provided was unsatisfactory. The limitation was common to both ST and
MT wq albeit less severe on MT. Each wq maintained its own separate MT wq albeit less severe on MT. Each wq maintained its own separate
worker pool. A MT wq could provide only one execution context per CPU worker pool. An MT wq could provide only one execution context per CPU
while a ST wq one for the whole system. Work items had to compete for while an ST wq one for the whole system. Work items had to compete for
those very limited execution contexts leading to various problems those very limited execution contexts leading to various problems
including proneness to deadlocks around the single execution context. including proneness to deadlocks around the single execution context.
@ -151,7 +151,7 @@ Application Programming Interface (API)
``alloc_workqueue()`` allocates a wq. The original ``alloc_workqueue()`` allocates a wq. The original
``create_*workqueue()`` functions are deprecated and scheduled for ``create_*workqueue()`` functions are deprecated and scheduled for
removal. ``alloc_workqueue()`` takes three arguments - @``name``, removal. ``alloc_workqueue()`` takes three arguments - ``@name``,
``@flags`` and ``@max_active``. ``@name`` is the name of the wq and ``@flags`` and ``@max_active``. ``@name`` is the name of the wq and
also used as the name of the rescuer thread if there is one. also used as the name of the rescuer thread if there is one.
@ -197,7 +197,7 @@ resources, scheduled and executed.
served by worker threads with elevated nice level. served by worker threads with elevated nice level.
Note that normal and highpri worker-pools don't interact with Note that normal and highpri worker-pools don't interact with
each other. Each maintain its separate pool of workers and each other. Each maintains its separate pool of workers and
implements concurrency management among its workers. implements concurrency management among its workers.
``WQ_CPU_INTENSIVE`` ``WQ_CPU_INTENSIVE``
@ -249,8 +249,8 @@ unbound worker-pools and only one work item could be active at any given
time thus achieving the same ordering property as ST wq. time thus achieving the same ordering property as ST wq.
In the current implementation the above configuration only guarantees In the current implementation the above configuration only guarantees
ST behavior within a given NUMA node. Instead alloc_ordered_queue should ST behavior within a given NUMA node. Instead ``alloc_ordered_queue()`` should
be used to achieve system wide ST behavior. be used to achieve system-wide ST behavior.
Example Execution Scenarios Example Execution Scenarios