| /Linux-v6.1/Documentation/translations/zh_CN/core-api/ |
| D | workqueue.rst | 4 :Original: Documentation/core-api/workqueue.rst 30 列被称为workqueue,线程被称为工作者(worker,即执行这一队列的线程)。 73 向该函数的工作项,并在工作队列中排队等待该工作项。(就是挂到workqueue 88 ``workqueue API`` 函数创建和排队工作项。他们可以通过在工作队列上 116 workqueue将自动创建与属性相匹配的后备工作者池。调节并发水平的责任在 130 ``alloc_workqueue()`` 分配了一个wq。原来的 ``create_*workqueue()`` 316 $ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event 350 include/linux/workqueue.h 352 kernel/workqueue.c
|
| /Linux-v6.1/mm/kasan/ |
| D | kasan_test_module.c | 101 struct workqueue_struct *workqueue; in kasan_workqueue_uaf() local 104 workqueue = create_workqueue("kasan_wq_test"); in kasan_workqueue_uaf() 105 if (!workqueue) { in kasan_workqueue_uaf() 116 queue_work(workqueue, work); in kasan_workqueue_uaf() 117 destroy_workqueue(workqueue); in kasan_workqueue_uaf()
|
| /Linux-v6.1/net/vmw_vsock/ |
| D | vsock_loopback.c | 16 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-v6.1/include/trace/events/ |
| D | workqueue.h | 3 #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-v6.1/drivers/misc/ |
| D | tifm_core.c | 17 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-v6.1/drivers/net/wireless/quantenna/qtnfmac/ |
| D | shm_ipc.c | 62 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()
|
| D | shm_ipc.h | 46 struct workqueue_struct *workqueue; member 54 struct workqueue_struct *workqueue,
|
| /Linux-v6.1/net/mac802154/ |
| D | main.c | 190 local->workqueue = in ieee802154_register_hw() 192 if (!local->workqueue) { in ieee802154_register_hw() 245 destroy_workqueue(local->workqueue); in ieee802154_register_hw() 256 flush_workqueue(local->workqueue); in ieee802154_unregister_hw() 264 destroy_workqueue(local->workqueue); in ieee802154_unregister_hw()
|
| /Linux-v6.1/Documentation/core-api/ |
| D | workqueue.rst | 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. 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-v6.1/drivers/remoteproc/ |
| D | keystone_remoteproc.c | 66 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()
|
| D | imx_rproc.c | 90 struct workqueue_struct *workqueue; member 641 queue_work(priv->workqueue, &priv->rproc_work); in imx_rproc_rx_callback() 783 priv->workqueue = create_workqueue(dev_name(dev)); in imx_rproc_probe() 784 if (!priv->workqueue) { in imx_rproc_probe() 826 destroy_workqueue(priv->workqueue); in imx_rproc_probe() 841 destroy_workqueue(priv->workqueue); in imx_rproc_remove()
|
| /Linux-v6.1/drivers/net/wireless/st/cw1200/ |
| D | scan.c | 40 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()
|
| D | main.c | 344 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-v6.1/drivers/mfd/ |
| D | ezx-pcap.c | 45 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-v6.1/drivers/net/wireless/quantenna/qtnfmac/pcie/ |
| D | pcie.c | 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() 390 destroy_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe() 418 destroy_workqueue(priv->workqueue); in qtnf_pcie_remove()
|
| /Linux-v6.1/drivers/media/platform/amphion/ |
| D | vpu_msgs.c | 266 if (!inst->workqueue) in vpu_inst_handle_msg() 273 queue_work(inst->workqueue, &inst->msg_work); in vpu_inst_handle_msg() 346 queue_delayed_work(core->workqueue, &core->msg_delayed_work, delay); in vpu_msg_run_work() 371 if (inst->workqueue && kfifo_len(&inst->msg_fifo) >= bytes) in vpu_msg_delayed_work() 372 queue_work(inst->workqueue, &inst->msg_work); in vpu_msg_delayed_work() 395 queue_work(core->workqueue, &core->msg_work); in vpu_isr()
|
| D | vpu_core.c | 257 core->workqueue = alloc_workqueue("vpu", WQ_UNBOUND | WQ_MEM_RECLAIM, 1); in vpu_core_register() 258 if (!core->workqueue) { in vpu_core_register() 286 if (core->workqueue) { in vpu_core_register() 287 destroy_workqueue(core->workqueue); in vpu_core_register() 288 core->workqueue = NULL; in vpu_core_register() 311 if (core->workqueue) { in vpu_core_unregister() 314 destroy_workqueue(core->workqueue); in vpu_core_unregister() 315 core->workqueue = NULL; in vpu_core_unregister() 768 queue_work(core->workqueue, &core->msg_work); in vpu_core_resume_work() 769 queue_delayed_work(core->workqueue, &core->msg_delayed_work, delay); in vpu_core_resume_work() [all …]
|
| D | vpu_v4l2.c | 600 if (inst->workqueue) { in vpu_v4l2_release() 602 destroy_workqueue(inst->workqueue); in vpu_v4l2_release() 603 inst->workqueue = NULL; in vpu_v4l2_release() 665 inst->workqueue = alloc_workqueue("vpu_inst", WQ_UNBOUND | WQ_MEM_RECLAIM, 1); in vpu_v4l2_open() 666 if (inst->workqueue) { in vpu_v4l2_open() 672 destroy_workqueue(inst->workqueue); in vpu_v4l2_open() 673 inst->workqueue = NULL; in vpu_v4l2_open()
|
| /Linux-v6.1/drivers/tty/serial/ |
| D | max3100.c | 120 struct workqueue_struct *workqueue; member 178 queue_work(s->workqueue, &s->work); in max3100_dowork() 556 if (s->workqueue) { in max3100_shutdown() 557 destroy_workqueue(s->workqueue); in max3100_shutdown() 558 s->workqueue = NULL; in max3100_shutdown() 595 s->workqueue = create_freezable_workqueue(b); in max3100_startup() 596 if (!s->workqueue) { in max3100_startup() 606 destroy_workqueue(s->workqueue); in max3100_startup() 607 s->workqueue = NULL; in max3100_startup() 877 if (s->workqueue) in max3100_resume()
|
| /Linux-v6.1/drivers/memstick/core/ |
| D | memstick.c | 24 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-v6.1/drivers/input/rmi4/ |
| D | rmi_f54.c | 113 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 destroy_workqueue(f54->workqueue); in rmi_f54_probe() 746 destroy_workqueue(f54->workqueue); in rmi_f54_remove()
|
| /Linux-v6.1/drivers/char/tpm/ |
| D | tpm_vtpm_proxy.c | 53 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-v6.1/drivers/net/ethernet/mellanox/mlx4/ |
| D | en_main.c | 208 queue_work(mdev->workqueue, &priv->linkstate_task); in mlx4_en_event() 240 destroy_workqueue(mdev->workqueue); in mlx4_en_remove() 327 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); in mlx4_en_add() 328 if (!mdev->workqueue) in mlx4_en_add()
|
| /Linux-v6.1/Documentation/fb/ |
| D | deferred_io.rst | 16 - 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-v6.1/drivers/net/wireless/marvell/libertas/ |
| D | if_sdio.c | 124 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()
|