Home
last modified time | relevance | path

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

12345678910>>...70

/linux-6.8/include/linux/
Dworkqueue.h3 * workqueue.h --- work queue handling for Linux.
32 WORK_STRUCT_COLOR_SHIFT = 5, /* color for workqueue flushing */
34 WORK_STRUCT_COLOR_SHIFT = 4, /* color for workqueue flushing */
56 * This makes pwqs aligned to 256 bytes and allows 16 workqueue
101 /* target workqueue and CPU ->timer uses to queue ->work */
110 /* target workqueue ->rcu uses to queue ->work */
126 * struct workqueue_attrs - A struct for workqueue attributes.
128 * This can be used to change attributes of an unbound workqueue.
139 * Work items in this workqueue are affine to these CPUs and not allowed
140 * to execute on other CPUs. A pool serving a workqueue must have the
[all …]
/linux-6.8/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.
95 workqueue API functions as they see fit. They can influence some
[all …]
/linux-6.8/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, pwq->wq->name);
46 TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%d cpu=%d",
47 __entry->work, __entry->function, __get_str(workqueue),
77 * workqueue_execute_start - called immediately before the workqueue callback
80 * Allows to track workqueue execution.
102 * workqueue_execute_end - called immediately after the workqueue callback
[all …]
/linux-6.8/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.
34 #include <linux/workqueue.h>
206 * tools/workqueue/wq_monitor.py.
222 * The per-pool workqueue. While queued, the lower WORK_STRUCT_FLAG_BITS
229 struct workqueue_struct *wq; /* I: the owning workqueue */
271 * Structure used to wait for workqueue flush.
282 * The externally visible workqueue. It relays the issued work items to
314 char name[WQ_NAME_LEN]; /* I: workqueue name */
450 #include <trace/events/workqueue.h>
[all …]
/linux-6.8/drivers/gpu/drm/xe/
Dxe_guc_submit_types.h47 /** @wq_desc: Guc scheduler workqueue descriptor */
60 /** @wq: Workqueue info */
136 /** @wq_desc: Workqueue description */
138 /** @head: Workqueue Head */
140 /** @tail: Workqueue Tail */
142 /** @status: Workqueue Status */
145 /** @wq: Workqueue Items */
/linux-6.8/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
49 parser.add_argument('workqueue', metavar='REGEX', nargs='*',
50 help='Target workqueue name patterns (all if empty)')
142 if args.workqueue:
143 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
148 print('Workqueue CPU -> pool')
151 print('[ workqueue \ type CPU', end='')
/linux-6.8/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
38 //! use kernel::workqueue::{self, Work, WorkItem};
69 //! /// This method will enqueue the struct for execution on the system workqueue, where its value
72 //! let _ = workqueue::system().enqueue(val);
81 //! use kernel::workqueue::{self, Work, WorkItem};
127 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 1>(val);
131 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 2>(val);
135 //! C header: [`include/linux/workqueue.h`](srctree/include/linux/workqueue.h)
147 … $crate::workqueue::Work::new($crate::optional_name!($($name)?), $crate::static_lock_class!())
[all …]
/linux-6.8/net/vmw_vsock/
Dvsock_loopback.c16 struct workqueue_struct *workqueue; member
35 queue_work(vsock->workqueue, &vsock->pkt_work); in vsock_loopback_send_pkt()
136 vsock->workqueue = alloc_workqueue("vsock-loopback", 0, 0); in vsock_loopback_init()
137 if (!vsock->workqueue) in vsock_loopback_init()
151 destroy_workqueue(vsock->workqueue); in vsock_loopback_init()
165 destroy_workqueue(vsock->workqueue); in vsock_loopback_exit()
/linux-6.8/Documentation/translations/zh_CN/core-api/
Dworkqueue.rst4 :Original: Documentation/core-api/workqueue.rst
88 ``workqueue API`` 函数创建和排队工作项。他们可以通过在工作队列上
130 ``alloc_workqueue()`` 分配了一个wq。原来的 ``create_*workqueue()``
316 $ echo workqueue:workqueue_queue_work > /sys/kernel/tracing/set_event
350 include/linux/workqueue.h
352 kernel/workqueue.c
/linux-6.8/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.8/arch/sh/include/asm/
Dpush-switch.h7 #include <linux/workqueue.h>
15 /* workqueue */
17 /* platform device, for workqueue handler */
/linux-6.8/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.8/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.8/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()
390 destroy_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe()
418 destroy_workqueue(priv->workqueue); in qtnf_pcie_remove()
/linux-6.8/drivers/tty/serial/
Dmax3100.c119 /* for handling irqs: need workqueue since we do spi_sync */
120 struct workqueue_struct *workqueue; member
124 /* need to know we are suspending to avoid deadlock on workqueue */
178 queue_work(s->workqueue, &s->work); in max3100_dowork()
555 if (s->workqueue) { in max3100_shutdown()
556 destroy_workqueue(s->workqueue); in max3100_shutdown()
557 s->workqueue = NULL; in max3100_shutdown()
594 s->workqueue = create_freezable_workqueue(b); in max3100_startup()
595 if (!s->workqueue) { in max3100_startup()
596 dev_warn(&s->spi->dev, "cannot create workqueue\n"); in max3100_startup()
[all …]
/linux-6.8/drivers/net/ethernet/intel/idpf/
Didpf_main.c176 dev_err(dev, "Failed to allocate init workqueue\n"); in idpf_probe()
185 dev_err(dev, "Failed to allocate service workqueue\n"); in idpf_probe()
194 dev_err(dev, "Failed to allocate mailbox workqueue\n"); in idpf_probe()
203 dev_err(dev, "Failed to allocate workqueue\n"); in idpf_probe()
212 dev_err(dev, "Failed to allocate virtchnl event workqueue\n"); in idpf_probe()
/linux-6.8/drivers/crypto/intel/qat/qat_common/
Dadf_vf_isr.c10 #include <linux/workqueue.h>
277 * adf_flush_vf_wq() - Flush workqueue for VF
281 * are received and flushes the workqueue 'adf_vf_stop_wq'.
294 * adf_init_vf_wq() - Init workqueue for VF
296 * Function init workqueue 'adf_vf_stop_wq' for VF.
/linux-6.8/drivers/media/platform/mediatek/jpeg/
Dmtk_jpeg_core.h145 * @job_timeout_work: encode timeout workqueue
173 * @job_timeout_work: decode timeout workqueue
196 * @workqueue: decode work queue
216 struct workqueue_struct *workqueue; member
281 * @jpeg_work: jpeg encoder workqueue
/linux-6.8/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.8/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.8/drivers/scsi/fcoe/
Dfcoe_sysfs.c674 * fcoe_ctlr_device_flush_work() - Flush a FIP ctlr's workqueue
675 * @ctlr: Pointer to the FIP ctlr whose workqueue is to be flushed
682 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_flush_work()
691 * fcoe_ctlr_device_queue_work() - Schedule work for a FIP ctlr's workqueue
692 * @ctlr: Pointer to the FIP ctlr who owns the devloss workqueue
704 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_queue_work()
714 * fcoe_ctlr_device_flush_devloss() - Flush a FIP ctlr's devloss workqueue
715 * @ctlr: Pointer to FIP ctlr whose workqueue is to be flushed
722 "when no workqueue created.\n", ctlr->id); in fcoe_ctlr_device_flush_devloss()
731 * fcoe_ctlr_device_queue_devloss_work() - Schedule work for a FIP ctlr's devloss workqueue
[all …]
/linux-6.8/Documentation/driver-api/crypto/iaa/
Diaa-crypto.rst175 For instance, here's an example of configuring an IAA workqueue and
192 Whenever a new workqueue is bound to or unbound from the iaa_crypto
195 workqueue available. Current best practice is to configure and bind
196 at least one workqueue for each IAA device, but as long as there is at
197 least one workqueue configured and bound to any IAA device in the
203 binding of the first IAA workqueue to the iaa_crypto driver.
427 system to be configured properly as a kernel workqueue with a
428 workqueue driver_name of "crypto".
506 system to be configured properly as a kernel workqueue with a
507 workqueue driver_name of "crypto".
[all …]

12345678910>>...70