Home
last modified time | relevance | path

Searched full:workqueue (Results 1 – 25 of 1214) sorted by relevance

12345678910>>...49

/linux/Documentation/core-api/
H A Dworkqueue.rst2 Workqueue title
14 is needed and the workqueue (wq) API is the most commonly used
20 queue is called workqueue and the thread is called worker.
22 While there are work items on the workqueue the worker executes the
24 there is no work item left on the workqueue the worker becomes idle.
28 Why Concurrency Managed Workqueue?
55 Concurrency Managed Workqueue (cmwq) is a reimplementation of wq with
58 * Maintain compatibility with the original workqueue API.
78 workqueue.
99 the BH execution context. A BH workqueue can be considered a convenience
[all …]
/linux/include/trace/events/
H A Dworkqueue.h3 #define TRACE_SYSTEM workqueue
9 #include <linux/workqueue.h>
20 * delayed work is actually queued on a workqueue (ie: once the delay
33 __string( workqueue, pwq->wq->name)
41 __assign_str(workqueue);
46 TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%d cpu=%d",
47 __entry->work, __entry->function, __get_str(workqueue),
79 * workqueue_execute_start - called immediately before the workqueue callback
82 * Allows to track workqueue execution.
104 * workqueue_execute_end - called immediately after the workqueue callbac
[all...]
/linux/kernel/
H A Dworkqueue_internal.h5 * Workqueue internal header file. Only to be included by workqueue and
11 #include <linux/workqueue.h>
20 * details on the locking annotation (L, I, X...), refer to workqueue.c.
22 * Only to be used in workqueue and async.
61 /* used only by rescuers to point to the target workqueue */
62 struct workqueue_struct *rescue_wq; /* I: the workqueue to rescue */
66 * current_wq_worker - return struct worker if %current is a workqueue worker
76 * Scheduler hooks for concurrency managed workqueue. Only to be used from
77 * sched/ and workqueue.c.
H A Dworkqueue.c3 * kernel/workqueue.c - generic async execution with shared worker pool
25 * Please read Documentation/core-api/workqueue.rst for details.
35 #include <linux/workqueue.h>
250 * tools/workqueue/wq_monitor.py.
266 * The per-pool workqueue. While queued, bits below WORK_PWQ_SHIFT
273 struct workqueue_struct *wq; /* I: the owning workqueue */
317 * Structure used to wait for workqueue flush.
328 * Unlike in a per-cpu workqueue where max_active limits its concurrency level
329 * on each CPU, in an unbound workqueue, max_active applies to the whole system.
348 * The externally visible workqueue. It relays the issued work items to
[all …]
/linux/samples/workqueue/stall_detector/
H A Dwq_stall.c3 * wq_stall - Test module for the workqueue stall detector.
5 * Deliberately creates a workqueue stall so the watchdog fires and
15 * After ~30s the workqueue watchdog fires:
16 * BUG: workqueue lockup - pool cpus=N ...
19 * make -C <kernel tree> M=samples/workqueue/stall_detector modules
26 #include <linux/workqueue.h>
49 * workqueue targets raw_smp_processor_id(), item 2 lands on the in stall_work1_fn()
56 * Hide from the workqueue concurrency manager. Without in stall_work1_fn()
64 pr_info("wq_stall: expect 'BUG: workqueue lockup' in ~30-60s\n"); in stall_work1_fn()
97 MODULE_DESCRIPTION("Reproduce workqueue stall caused by PF_WQ_WORKER misuse");
/linux/tools/workqueue/
H A Dwq_monitor.py10 total Total number of work items executed by the workqueue.
14 CPUtime Total CPU time consumed by the workqueue in seconds. This is
19 longer than the threshold (workqueue.cpu_intensive_thresh_us)
24 wake-ups while executing a work item of the workqueue. For
43 parser.add_argument('workqueue', metavar='REGEX', nargs='*',
44 help='Target workqueue name patterns (all if empty)')
135 if args.workqueue:
136 for r in args.workqueue:
H A Dwq_dump.py7 This is a drgn script to show the current workqueue configuration. For more
33 Workqueue CPU -> pool
37 each workqueue:
41 NAME name of the workqueue
174 print('Workqueue CPU -> pool')
177 print(f'[{"workqueue":^{WQ_NAME_LEN-2}}\\ {"type CPU":{wq_type_len}}', end='')
195 print('Workqueue -> rescuer')
201 print(f'[{"workqueue":^{WQ_NAME_LEN-2}}\\ {"unbound_cpus":{ucpus_len}} pid {"rescuer_cpus":{rcpu…
218 print('Unbound workqueue -> node_nr/max_active')
231 print(f'[{"workqueue":^{WQ_NAME_LEN-1}} {"min":>4} {"max":>4}', end='')
/linux/Documentation/translations/zh_CN/core-api/
H A Dworkqueue.rst4 :Original: Documentation/core-api/workqueue.rst
95 ``workqueue API`` 函数创建和排队工作项。他们可以通过在工作队列上
137 ``alloc_workqueue()`` 分配了一个wq。原来的 ``create_*workqueue()``
324 使用模块参数 ``workqueue.default_affinity_scope`` 指定
346 默认的亲和性作用域可以被模块参数 ``workqueue.default_affinity_scope``
350 如果设置了 ``WQ_SYSFS`` ,工作队列会在它的 ``/sys/devices/virtual/workqueue/WQ_NAME/``
537 使用 tools/workqueue/wq_dump.py(drgn脚本) 来检查未
540 $ tools/workqueue/wq_dump.py
592 Workqueue CPU -> pool
594 [ workqueue \ CPU 0 1 2 3 dfl]
[all …]
/linux/arch/sh/include/asm/
H A Dpush-switch.h7 #include <linux/workqueue.h>
15 /* workqueue */
17 /* platform device, for workqueue handler */
/linux/drivers/net/wireless/quantenna/qtnfmac/
H A Dshm_ipc.h7 #include <linux/workqueue.h>
46 struct workqueue_struct *workqueue; member
54 struct workqueue_struct *workqueue,
H A Dshm_ipc.c62 queue_work(ipc->workqueue, &ipc->irq_work); in qtnf_shm_ipc_irq_inbound_handler()
83 struct workqueue_struct *workqueue, in qtnf_shm_ipc_init() argument
97 ipc->workqueue = workqueue; in qtnf_shm_ipc_init()
/linux/tools/testing/selftests/bpf/progs/
H A Dwq_failures.c30 /* callback for non sleepable workqueue */
37 /* callback for sleepable workqueue */
70 /* test that the workqueue is part of the map in bpf_wq_init
76 __msg("workqueue pointer in R1 map_uid=0 doesn't match map pointer in R2 map_uid=0") in __flag()
/linux/drivers/tty/serial/
H A Dmax3100.c103 /* for handling irqs: need workqueue since we do spi_sync */
104 struct workqueue_struct *workqueue; member
108 /* need to know we are suspending to avoid deadlock on workqueue */
306 queue_work(s->workqueue, &s->work); in max3100_dowork()
537 if (s->workqueue) { in max3100_shutdown()
538 destroy_workqueue(s->workqueue); in max3100_shutdown()
539 s->workqueue = NULL; in max3100_shutdown()
568 s->workqueue = create_freezable_workqueue(b); in max3100_startup()
569 if (!s->workqueue) { in max3100_startup()
570 dev_warn(&s->spi->dev, "cannot create workqueue\n"); in max3100_startup()
[all …]
/linux/drivers/scsi/fcoe/
H A Dfcoe_sysfs.c670 * fcoe_ctlr_device_flush_work() - Flush a FIP ctlr's workqueue
671 * @ctlr: Pointer to the FIP ctlr whose workqueue is to be flushed
678 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_flush_work()
687 * fcoe_ctlr_device_queue_work() - Schedule work for a FIP ctlr's workqueue
688 * @ctlr: Pointer to the FIP ctlr who owns the devloss workqueue
700 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_queue_work()
710 * fcoe_ctlr_device_flush_devloss() - Flush a FIP ctlr's devloss workqueue
711 * @ctlr: Pointer to FIP ctlr whose workqueue is to be flushed
718 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_flush_devloss()
727 * fcoe_ctlr_device_queue_devloss_work() - Schedule work for a FIP ctlr's devloss workqueue
[all …]
/linux/Documentation/driver-api/crypto/iaa/
H A Diaa-crypto.rst175 For instance, here's an example of configuring an IAA workqueue and
194 Whenever a new workqueue is bound to or unbound from the iaa_crypto
197 workqueue available. Current best practice is to configure and bind
198 at least one workqueue for each IAA device, but as long as there is at
199 least one workqueue configured and bound to any IAA device in the
205 binding of the first IAA workqueue to the iaa_crypto driver.
448 system to be configured properly as a kernel workqueue with a
449 workqueue driver_name of "crypto".
525 system to be configured properly as a kernel workqueue with a
526 workqueue driver_name of "crypto".
[all …]
/linux/include/linux/cdx/
H A Dmcdi.h90 * @work: The work item for this command, queued in mcdi->workqueue
137 * @workqueue: Workqueue used for delayed processing
152 struct workqueue_struct *workqueue; member
/linux/drivers/gpu/drm/xe/
H A Dxe_module.c10 #include <linux/workqueue.h>
113 * xe_destroy_wq_queue() - Queue work on the destroy workqueue
116 * The destroy workqueue has module lifetime and is used for GuC exec queue
128 * xe_destroy_wq_flush() - Flush the destroy workqueue
/linux/Documentation/fb/
H A Ddeferred_io.rst16 - schedule a workqueue task to be run after a delay
19 - the workqueue task comes in and mkcleans the pages on the list, then
70 from a workqueue.
/linux/drivers/net/wireless/st/cw1200/
H A Dscan.c40 queue_delayed_work(priv->workqueue, &priv->scan.timeout, in cw1200_scan_start()
122 queue_work(priv->workqueue, &priv->scan.work); in cw1200_hw_scan()
261 queue_work(priv->workqueue, &priv->scan.work); in cw1200_scan_work()
275 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_scan_restart_delayed()
286 queue_delayed_work(priv->workqueue, &priv->clear_recent_scan_work, HZ); in cw1200_scan_complete()
306 queue_delayed_work(priv->workqueue, &priv->scan.timeout, 0); in cw1200_scan_failed_cb()
320 queue_delayed_work(priv->workqueue, &priv->scan.timeout, 0); in cw1200_scan_complete_cb()
386 queue_delayed_work(priv->workqueue, &priv->scan.probe_work, in cw1200_probe_work()
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dksock_wq.c37 if (!ASSERT_EQ(callback_done, 1, "workqueue callback completed")) in test_ksock_wq()
41 "workqueue create rejected"); in test_ksock_wq()
/linux/drivers/media/platform/amphion/
H A Dvpu_msgs.c289 if (!inst->workqueue) in vpu_inst_handle_msg()
296 queue_work(inst->workqueue, &inst->msg_work); in vpu_inst_handle_msg()
369 queue_delayed_work(core->workqueue, &core->msg_delayed_work, delay); in vpu_msg_run_work()
394 if (inst->workqueue && kfifo_len(&inst->msg_fifo) >= bytes) in vpu_msg_delayed_work()
395 queue_work(inst->workqueue, &inst->msg_work); in vpu_msg_delayed_work()
418 queue_work(core->workqueue, &core->msg_work); in vpu_isr()
/linux/drivers/net/ethernet/intel/idpf/
H A Didpf_main.c285 dev_err(dev, "Failed to allocate init workqueue\n"); in idpf_probe()
295 dev_err(dev, "Failed to allocate service workqueue\n"); in idpf_probe()
304 dev_err(dev, "Failed to allocate mailbox workqueue\n"); in idpf_probe()
314 dev_err(dev, "Failed to allocate workqueue\n"); in idpf_probe()
324 dev_err(dev, "Failed to allocate virtchnl event workqueue\n"); in idpf_probe()
/linux/drivers/char/tpm/
H A Dtpm_vtpm_proxy.c53 static struct workqueue_struct *workqueue; variable
482 queue_work(workqueue, &proxy_dev->work); in vtpm_proxy_work_start()
691 workqueue = create_workqueue("tpm-vtpm"); in vtpm_module_init()
692 if (!workqueue) { in vtpm_module_init()
693 pr_err("couldn't create workqueue\n"); in vtpm_module_init()
700 destroy_workqueue(workqueue); in vtpm_module_init()
708 destroy_workqueue(workqueue); in vtpm_module_exit()
/linux/drivers/crypto/intel/qat/qat_common/
H A Dadf_vf_isr.c10 #include <linux/workqueue.h>
279 * adf_flush_vf_wq() - Flush workqueue for VF
283 * are received and flushes the workqueue 'adf_vf_stop_wq'.
296 * adf_init_vf_wq() - Init workqueue for VF
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Den_main.c215 queue_work(mdev->workqueue, &priv->linkstate_task); in mlx4_en_event()
254 destroy_workqueue(mdev->workqueue); in mlx4_en_remove()
329 /* Create our own workqueue for reset/multicast tasks in mlx4_en_probe()
330 * Note: we cannot use the shared workqueue because of deadlocks caused in mlx4_en_probe()
332 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); in mlx4_en_probe()
333 if (!mdev->workqueue) { in mlx4_en_probe()

12345678910>>...49