Home
last modified time | relevance | path

Searched refs:workqueue (Results 1 – 25 of 177) sorted by relevance

12345678

/Linux-v5.15/Documentation/translations/zh_CN/core-api/
Dworkqueue.rst4 :Original: Documentation/core-api/workqueue.rst
29 列被称为workqueue,线程被称为工作者(worker,即执行这一队列的线程)。
72 向该函数的工作项,并在工作队列中排队等待该工作项。(就是挂到workqueue
87 ``workqueue API`` 函数创建和排队工作项。他们可以通过在工作队列上
115 workqueue将自动创建与属性相匹配的后备工作者池。调节并发水平的责任在
129 ``alloc_workqueue()`` 分配了一个wq。原来的 ``create_*workqueue()``
319 $ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
337 include/linux/workqueue.h
339 kernel/workqueue.c
/Linux-v5.15/lib/
Dtest_kasan_module.c99 struct workqueue_struct *workqueue; in kasan_workqueue_uaf() local
102 workqueue = create_workqueue("kasan_wq_test"); in kasan_workqueue_uaf()
103 if (!workqueue) { in kasan_workqueue_uaf()
114 queue_work(workqueue, work); in kasan_workqueue_uaf()
115 destroy_workqueue(workqueue); in kasan_workqueue_uaf()
/Linux-v5.15/net/vmw_vsock/
Dvsock_loopback.c16 struct workqueue_struct *workqueue; member
39 queue_work(vsock->workqueue, &vsock->pkt_work); in vsock_loopback_send_pkt()
146 vsock->workqueue = alloc_workqueue("vsock-loopback", 0, 0); in vsock_loopback_init()
147 if (!vsock->workqueue) in vsock_loopback_init()
162 destroy_workqueue(vsock->workqueue); in vsock_loopback_init()
184 destroy_workqueue(vsock->workqueue); in vsock_loopback_exit()
/Linux-v5.15/include/trace/events/
Dworkqueue.h3 #define TRACE_SYSTEM workqueue
33 __string( workqueue, pwq->wq->name)
41 __assign_str(workqueue, pwq->wq->name);
47 __entry->work, __entry->function, __get_str(workqueue),
/Linux-v5.15/net/mac802154/
Dmain.c146 local->workqueue = in ieee802154_register_hw()
148 if (!local->workqueue) { in ieee802154_register_hw()
199 destroy_workqueue(local->workqueue); in ieee802154_register_hw()
210 flush_workqueue(local->workqueue); in ieee802154_unregister_hw()
218 destroy_workqueue(local->workqueue); in ieee802154_unregister_hw()
/Linux-v5.15/drivers/misc/
Dtifm_core.c17 static struct workqueue_struct *workqueue; variable
222 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-v5.15/drivers/net/wireless/quantenna/qtnfmac/pcie/
Dpcie.c267 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()
390 flush_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe()
391 destroy_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe()
419 flush_workqueue(priv->workqueue); in qtnf_pcie_remove()
420 destroy_workqueue(priv->workqueue); in qtnf_pcie_remove()
/Linux-v5.15/drivers/net/wireless/quantenna/qtnfmac/
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()
Dshm_ipc.h46 struct workqueue_struct *workqueue; member
54 struct workqueue_struct *workqueue,
Dcore.c158 queue_work(bus->workqueue, &vif->reset_work); in qtnf_netdev_tx_timeout()
724 bus->workqueue = alloc_ordered_workqueue("QTNF_BUS", 0); in qtnf_core_attach()
725 if (!bus->workqueue) { in qtnf_core_attach()
813 if (bus->workqueue) { in qtnf_core_detach()
814 flush_workqueue(bus->workqueue); in qtnf_core_detach()
815 destroy_workqueue(bus->workqueue); in qtnf_core_detach()
816 bus->workqueue = NULL; in qtnf_core_detach()
/Linux-v5.15/drivers/remoteproc/
Dkeystone_remoteproc.c66 struct work_struct workqueue; member
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-v5.15/Documentation/core-api/
Dworkqueue.rst14 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.
58 * Maintain compatibility with the original workqueue API.
78 workqueue.
95 workqueue API functions as they see fit. They can influence some
97 workqueue they are putting the work item on. These flags include
102 When a work item is queued to a workqueue, the target worker-pool is
103 determined according to the queue parameters and workqueue attributes
[all …]
/Linux-v5.15/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()
212 queue_work(pcap->workqueue, &pcap->isr_work); in pcap_irq_handler()
414 destroy_workqueue(pcap->workqueue); in ezx_pcap_remove()
453 pcap->workqueue = create_singlethread_workqueue("pcapd"); in ezx_pcap_probe()
454 if (!pcap->workqueue) { in ezx_pcap_probe()
509 destroy_workqueue(pcap->workqueue); in ezx_pcap_probe()
/Linux-v5.15/drivers/net/wireless/st/cw1200/
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()
263 queue_work(priv->workqueue, &priv->scan.work); in cw1200_scan_work()
277 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_scan_restart_delayed()
288 queue_delayed_work(priv->workqueue, &priv->clear_recent_scan_work, HZ); in cw1200_scan_complete()
308 queue_delayed_work(priv->workqueue, &priv->scan.timeout, 0); in cw1200_scan_failed_cb()
322 queue_delayed_work(priv->workqueue, &priv->scan.timeout, 0); in cw1200_scan_complete_cb()
388 queue_delayed_work(priv->workqueue, &priv->scan.probe_work, in cw1200_probe_work()
Dmain.c344 priv->workqueue = create_singlethread_workqueue("cw1200_wq"); in cw1200_init_common()
345 if (!priv->workqueue) { in cw1200_init_common()
384 destroy_workqueue(priv->workqueue); in cw1200_init_common()
396 destroy_workqueue(priv->workqueue); in cw1200_init_common()
465 destroy_workqueue(priv->workqueue); in cw1200_unregister_common()
466 priv->workqueue = NULL; in cw1200_unregister_common()
/Linux-v5.15/drivers/tty/serial/
Dmax3100.c120 struct workqueue_struct *workqueue; member
178 queue_work(s->workqueue, &s->work); in max3100_dowork()
556 if (s->workqueue) { in max3100_shutdown()
557 flush_workqueue(s->workqueue); in max3100_shutdown()
558 destroy_workqueue(s->workqueue); in max3100_shutdown()
559 s->workqueue = NULL; in max3100_shutdown()
596 s->workqueue = create_freezable_workqueue(b); in max3100_startup()
597 if (!s->workqueue) { in max3100_startup()
607 destroy_workqueue(s->workqueue); in max3100_startup()
608 s->workqueue = NULL; in max3100_startup()
[all …]
/Linux-v5.15/drivers/input/rmi4/
Drmi_f54.c113 struct workqueue_struct *workqueue; member
210 queue_delayed_work(f54->workqueue, &f54->work, 0); in rmi_f54_request_report()
604 queue_delayed_work(f54->workqueue, &f54->work, in rmi_f54_work()
691 f54->workqueue = create_singlethread_workqueue("rmi4-poller"); in rmi_f54_probe()
692 if (!f54->workqueue) in rmi_f54_probe()
736 flush_workqueue(f54->workqueue); in rmi_f54_probe()
737 destroy_workqueue(f54->workqueue); in rmi_f54_probe()
747 destroy_workqueue(f54->workqueue); in rmi_f54_remove()
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx4/
Den_main.c208 queue_work(mdev->workqueue, &priv->linkstate_task); in mlx4_en_event()
240 flush_workqueue(mdev->workqueue); in mlx4_en_remove()
241 destroy_workqueue(mdev->workqueue); in mlx4_en_remove()
328 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); in mlx4_en_add()
329 if (!mdev->workqueue) in mlx4_en_add()
/Linux-v5.15/drivers/memstick/core/
Dmemstick.c24 static struct workqueue_struct *workqueue; variable
208 queue_work(workqueue, &host->media_checker); in memstick_detect_change()
549 flush_workqueue(workqueue); in memstick_remove_host()
624 workqueue = create_freezable_workqueue("kmemstick"); in memstick_init()
625 if (!workqueue) in memstick_init()
641 destroy_workqueue(workqueue); in memstick_init()
650 destroy_workqueue(workqueue); in memstick_exit()
/Linux-v5.15/drivers/char/tpm/
Dtpm_vtpm_proxy.c53 static struct workqueue_struct *workqueue; variable
481 queue_work(workqueue, &proxy_dev->work); in vtpm_proxy_work_start()
706 workqueue = create_workqueue("tpm-vtpm"); in vtpm_module_init()
707 if (!workqueue) { in vtpm_module_init()
723 destroy_workqueue(workqueue); in vtpm_module_exit()
/Linux-v5.15/Documentation/fb/
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-v5.15/drivers/net/wireless/marvell/libertas/
Dif_spi.c58 struct workqueue_struct *workqueue; member
982 queue_work(card->workqueue, &card->packet_work); in if_spi_host_to_card()
997 queue_work(card->workqueue, &card->packet_work); in if_spi_host_interrupt()
1154 card->workqueue = alloc_workqueue("libertas_spi", WQ_MEM_RECLAIM, 0); in if_spi_probe()
1155 if (!card->workqueue) { in if_spi_probe()
1186 destroy_workqueue(card->workqueue); in if_spi_probe()
1211 destroy_workqueue(card->workqueue); in libertas_spi_remove()
1226 flush_workqueue(card->workqueue); in if_spi_suspend()
Dif_sdio.c124 struct workqueue_struct *workqueue; member
974 queue_work(card->workqueue, &card->packet_worker); in if_sdio_host_to_card()
1068 flush_workqueue(card->workqueue); in if_sdio_power_save()
1181 card->workqueue = alloc_workqueue("libertas_sdio", WQ_MEM_RECLAIM, 0); in if_sdio_probe()
1182 if (unlikely(!card->workqueue)) { in if_sdio_probe()
1233 flush_workqueue(card->workqueue); in if_sdio_probe()
1236 destroy_workqueue(card->workqueue); in if_sdio_probe()
1280 destroy_workqueue(card->workqueue); in if_sdio_remove()
/Linux-v5.15/Documentation/ABI/stable/
Dsysfs-driver-dma-idxd59 the workqueue the descriptor was submitted to.
199 Description: The max transfer sized for this workqueue. Cannot exceed device
206 Description: The max batch size for this workqueue. Cannot exceed device
213 Description: Indicate whether ATS disable is turned on for the workqueue.
214 0 indicates ATS is on, and 1 indicates ATS is off for the workqueue.
/Linux-v5.15/net/qrtr/
Dns.c24 struct workqueue_struct *workqueue; member
755 queue_work(qrtr_ns.workqueue, &qrtr_ns.work); in qrtr_ns_data_ready()
777 qrtr_ns.workqueue = alloc_workqueue("qrtr_ns_handler", WQ_UNBOUND, 1); in qrtr_ns_init()
778 if (!qrtr_ns.workqueue) { in qrtr_ns_init()
805 destroy_workqueue(qrtr_ns.workqueue); in qrtr_ns_init()
815 destroy_workqueue(qrtr_ns.workqueue); in qrtr_ns_remove()

12345678