Home
last modified time | relevance | path

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

12345678910>>...73

/linux-6.12.1/include/linux/
Dworkqueue.h3 * workqueue.h --- work queue handling for Linux.
35 /* color for workqueue flushing */
42 * bytes w/ DEBUG_OBJECTS_WORK) and allows 16 workqueue flush colors.
117 /* target workqueue and CPU ->timer uses to queue ->work */
126 /* target workqueue ->rcu uses to queue ->work */
142 * struct workqueue_attrs - A struct for workqueue attributes.
144 * This can be used to change attributes of an unbound workqueue.
155 * Work items in this workqueue are affine to these CPUs and not allowed
156 * to execute on other CPUs. A pool serving a workqueue must have the
167 * subset of ->cpumask. A workqueue can be associated with multiple
[all …]
/linux-6.12.1/Documentation/core-api/
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-6.12.1/include/trace/events/
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 callback
[all …]
/linux-6.12.1/kernel/
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.
60 /* used only by rescuers to point to the target workqueue */
61 struct workqueue_struct *rescue_wq; /* I: the workqueue to rescue */
65 * current_wq_worker - return struct worker if %current is a workqueue worker
75 * Scheduler hooks for concurrency managed workqueue. Only to be used from
76 * sched/ and workqueue.c.
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>
235 * tools/workqueue/wq_monitor.py.
251 * The per-pool workqueue. While queued, bits below WORK_PWQ_SHIFT
258 struct workqueue_struct *wq; /* I: the owning workqueue */
301 * Structure used to wait for workqueue flush.
312 * Unlike in a per-cpu workqueue where max_active limits its concurrency level
313 * on each CPU, in an unbound workqueue, max_active applies to the whole system.
332 * The externally visible workqueue. It relays the issued work items to
[all …]
/linux-6.12.1/drivers/gpu/drm/xe/
Dxe_guc_submit_types.h47 /** @wq_desc: Guc scheduler workqueue descriptor */
60 /** @wq: Workqueue info */
125 /** @parallel.wq_desc: Workqueue description */
127 /** @parallel.wq_desc.head: Workqueue Head */
129 /** @parallel.wq_desc.tail: Workqueue Tail */
131 /** @parallel.wq_desc.status: Workqueue Status */
134 /** @wq: Workqueue Items */
/linux-6.12.1/tools/workqueue/
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
46 parser.add_argument('workqueue', metavar='REGEX', nargs='*',
47 help='Target workqueue name patterns (all if empty)')
135 if args.workqueue:
136 for r in args.workqueue:
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
173 print('Workqueue CPU -> pool')
176 print(f'[{"workqueue":^{WQ_NAME_LEN-2}}\\ {"type CPU":{wq_type_len}}', end='')
194 print('Workqueue -> rescuer')
200 print(f'[{"workqueue":^{WQ_NAME_LEN-2}}\\ {"unbound_cpus":{ucpus_len}} pid {"rescuer_cpus":{rcpu…
217 print('Unbound workqueue -> node_nr/max_active')
230 print(f'[{"workqueue":^{WQ_NAME_LEN-2}}\\ min max', end='')
/linux-6.12.1/Documentation/translations/zh_CN/core-api/
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-6.12.1/rust/kernel/
Dworkqueue.rs25 //! * The [`WorkItem`] trait is implemented for structs that can be enqueued to a workqueue.
31 //! This example defines a struct that holds an integer and can be scheduled on the workqueue. When
37 //! use kernel::workqueue::{self, impl_has_work, new_work, Work, WorkItem};
67 //! /// This method will enqueue the struct for execution on the system workqueue, where its value
70 //! let _ = workqueue::system().enqueue(val);
78 //! use kernel::workqueue::{self, impl_has_work, new_work, Work, WorkItem};
123 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 1>(val);
127 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 2>(val);
131 //! C header: [`include/linux/workqueue.h`](srctree/include/linux/workqueue.h)
141 … $crate::workqueue::Work::new($crate::optional_name!($($name)?), $crate::static_lock_class!())
[all …]
/linux-6.12.1/net/vmw_vsock/
Dvsock_loopback.c16 struct workqueue_struct *workqueue; member
35 queue_work(vsock->workqueue, &vsock->pkt_work); in vsock_loopback_send_pkt()
142 vsock->workqueue = alloc_workqueue("vsock-loopback", 0, 0); in vsock_loopback_init()
143 if (!vsock->workqueue) in vsock_loopback_init()
157 destroy_workqueue(vsock->workqueue); in vsock_loopback_init()
171 destroy_workqueue(vsock->workqueue); in vsock_loopback_exit()
/linux-6.12.1/drivers/remoteproc/
Dkeystone_remoteproc.c14 #include <linux/workqueue.h>
53 * @workqueue: workqueue for processing virtio interrupts
66 struct work_struct workqueue; member
119 * Main virtqueue message workqueue function
122 * driver's workqueue. The workqueue is scheduled by the vring ISR handler.
144 container_of(work, struct keystone_rproc, workqueue); in handle_event()
157 schedule_work(&ksproc->workqueue); in keystone_rproc_vring_interrupt()
174 INIT_WORK(&ksproc->workqueue, handle_event); in keystone_rproc_start()
202 flush_work(&ksproc->workqueue); in keystone_rproc_start()
220 flush_work(&ksproc->workqueue); in keystone_rproc_stop()
/linux-6.12.1/arch/sh/include/asm/
Dpush-switch.h7 #include <linux/workqueue.h>
15 /* workqueue */
17 /* platform device, for workqueue handler */
/linux-6.12.1/drivers/misc/
Dtifm_core.c17 static struct workqueue_struct *workqueue; variable
221 flush_workqueue(workqueue); in tifm_remove_adapter()
309 queue_work(workqueue, work); in tifm_queue_work()
331 workqueue = create_freezable_workqueue("tifm"); in tifm_init()
332 if (!workqueue) in tifm_init()
347 destroy_workqueue(workqueue); in tifm_init()
356 destroy_workqueue(workqueue); in tifm_exit()
/linux-6.12.1/drivers/net/wireless/quantenna/qtnfmac/
Dshm_ipc.h7 #include <linux/workqueue.h>
46 struct workqueue_struct *workqueue; member
54 struct workqueue_struct *workqueue,
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-6.12.1/tools/testing/selftests/bpf/progs/
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-6.12.1/drivers/tty/serial/
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-6.12.1/drivers/net/wireless/quantenna/qtnfmac/pcie/
Dpcie.c11 #include <linux/workqueue.h>
267 ipc_tx_reg, priv->workqueue, in qtnf_pcie_init_shm_ipc()
270 ipc_rx_reg, priv->workqueue, in qtnf_pcie_init_shm_ipc()
361 pcie_priv->workqueue = create_singlethread_workqueue("QTNF_PCIE"); in qtnf_pcie_probe()
362 if (!pcie_priv->workqueue) { in qtnf_pcie_probe()
363 pr_err("failed to alloc bus workqueue\n"); in qtnf_pcie_probe()
397 destroy_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe()
425 destroy_workqueue(priv->workqueue); in qtnf_pcie_remove()
/linux-6.12.1/drivers/net/ethernet/intel/idpf/
Didpf_main.c181 dev_err(dev, "Failed to allocate init workqueue\n"); in idpf_probe()
190 dev_err(dev, "Failed to allocate service workqueue\n"); in idpf_probe()
199 dev_err(dev, "Failed to allocate mailbox workqueue\n"); in idpf_probe()
208 dev_err(dev, "Failed to allocate workqueue\n"); in idpf_probe()
217 dev_err(dev, "Failed to allocate virtchnl event workqueue\n"); in idpf_probe()
/linux-6.12.1/drivers/media/platform/mediatek/jpeg/
Dmtk_jpeg_core.h145 * @job_timeout_work: encode timeout workqueue
172 * @job_timeout_work: decode timeout workqueue
195 * @workqueue: decode work queue
215 struct workqueue_struct *workqueue; member
280 * @jpeg_work: jpeg encoder workqueue
/linux-6.12.1/drivers/mfd/
Dezx-pcap.c45 struct workqueue_struct *workqueue; member
151 queue_work(pcap->workqueue, &pcap->msr_work); in pcap_mask_irq()
159 queue_work(pcap->workqueue, &pcap->msr_work); in pcap_unmask_irq()
210 queue_work(pcap->workqueue, &pcap->isr_work); in pcap_irq_handler()
412 destroy_workqueue(pcap->workqueue); in ezx_pcap_remove()
449 pcap->workqueue = create_singlethread_workqueue("pcapd"); in ezx_pcap_probe()
450 if (!pcap->workqueue) { in ezx_pcap_probe()
505 destroy_workqueue(pcap->workqueue); in ezx_pcap_probe()
/linux-6.12.1/drivers/media/platform/amphion/
Dvpu_core.c259 core->workqueue = alloc_ordered_workqueue("vpu", WQ_MEM_RECLAIM); in vpu_core_register()
260 if (!core->workqueue) { in vpu_core_register()
261 dev_err(core->dev, "fail to alloc workqueue\n"); in vpu_core_register()
288 if (core->workqueue) { in vpu_core_register()
289 destroy_workqueue(core->workqueue); in vpu_core_register()
290 core->workqueue = NULL; in vpu_core_register()
313 if (core->workqueue) { in vpu_core_unregister()
316 destroy_workqueue(core->workqueue); in vpu_core_unregister()
317 core->workqueue = NULL; in vpu_core_unregister()
768 queue_work(core->workqueue, &core->msg_work); in vpu_core_resume_work()
[all …]
/linux-6.12.1/drivers/scsi/fcoe/
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-6.12.1/Documentation/driver-api/crypto/iaa/
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.
441 system to be configured properly as a kernel workqueue with a
442 workqueue driver_name of "crypto".
519 system to be configured properly as a kernel workqueue with a
520 workqueue driver_name of "crypto".
[all …]

12345678910>>...73