/linux/Documentation/translations/zh_CN/core-api/ |
H A D | workqueue.rst | 4 :Original: Documentation/core-api/workqueue.rst 31 列被称为workqueue,线程被称为工作者(worker,即执行这一队列的线程)。 74 向该函数的工作项,并在工作队列中排队等待该工作项。(就是挂到workqueue 95 ``workqueue API`` 函数创建和排队工作项。他们可以通过在工作队列上 123 workqueue将自动创建与属性相匹配的后备工作者池。调节并发水平的责任在 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脚本) 来检查未 [all …]
|
/linux/net/vmw_vsock/ |
H A D | vsock_loopback.c | 16 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/Documentation/core-api/ |
H A 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. 99 the BH execution context. A BH workqueue can be considered a convenience 103 workqueue API functions as they see fit. They can influence some 105 workqueue they are putting the work item on. These flags include 110 When a work item is queued to a workqueue, the target worker-pool is [all …]
|
/linux/include/trace/events/ |
H A D | workqueue.h | 3 #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/drivers/misc/ |
H A 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/drivers/net/wireless/quantenna/qtnfmac/ |
H A 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()
|
H A D | shm_ipc.h | 46 struct workqueue_struct *workqueue; member 54 struct workqueue_struct *workqueue,
|
/linux/net/mac802154/ |
H A D | main.c | 202 local->workqueue = in ieee802154_register_hw() 204 if (!local->workqueue) { in ieee802154_register_hw() 267 destroy_workqueue(local->workqueue); in ieee802154_register_hw() 278 flush_workqueue(local->workqueue); in ieee802154_unregister_hw() 287 destroy_workqueue(local->workqueue); in ieee802154_unregister_hw()
|
/linux/drivers/mfd/ |
H A 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/drivers/net/wireless/st/cw1200/ |
H A 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()
|
H A D | main.c | 349 priv->workqueue = create_singlethread_workqueue("cw1200_wq"); in cw1200_init_common() 350 if (!priv->workqueue) { in cw1200_init_common() 389 destroy_workqueue(priv->workqueue); in cw1200_init_common() 401 destroy_workqueue(priv->workqueue); in cw1200_init_common() 470 destroy_workqueue(priv->workqueue); in cw1200_unregister_common() 471 priv->workqueue = NULL; in cw1200_unregister_common()
|
H A D | sta.c | 115 flush_workqueue(priv->workqueue); in cw1200_stop() 167 queue_delayed_work(priv->workqueue, in __cw1200_cqm_bssloss_sm() 178 queue_work(priv->workqueue, &priv->bss_params_work); in __cw1200_cqm_bssloss_sm() 264 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_remove_interface() 992 queue_delayed_work(priv->workqueue, in cw1200_event_handler() 1042 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_bss_loss_work() 1200 queue_work(priv->workqueue, &priv->join_complete_work); in cw1200_join_complete_cb() 1326 queue_delayed_work(priv->workqueue, in cw1200_do_join() 1343 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_do_join() 1373 if (queue_work(priv->workqueue, &priv->unjoin_work) <= 0) in cw1200_join_timeout() [all …]
|
/linux/drivers/net/wireless/quantenna/qtnfmac/pcie/ |
H A 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() 397 destroy_workqueue(pcie_priv->workqueue); in qtnf_pcie_probe() 425 destroy_workqueue(priv->workqueue); in qtnf_pcie_remove()
|
/linux/drivers/tty/serial/ |
H A D | max3100.c | 104 struct workqueue_struct *workqueue; member 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() 579 destroy_workqueue(s->workqueue); in max3100_startup() 580 s->workqueue = NULL; in max3100_startup() 804 if (s->workqueue) in max3100_resume()
|
/linux/net/bluetooth/ |
H A D | coredump.c | 207 queue_delayed_work(hdev->workqueue, &hdev->dump.dump_timeout, in hci_devcd_handle_pkt_init() 447 queue_work(hdev->workqueue, &hdev->dump.dump_rx); in hci_devcd_init() 466 queue_work(hdev->workqueue, &hdev->dump.dump_rx); in hci_devcd_append() 491 queue_work(hdev->workqueue, &hdev->dump.dump_rx); in hci_devcd_append_pattern() 511 queue_work(hdev->workqueue, &hdev->dump.dump_rx); in hci_devcd_complete() 531 queue_work(hdev->workqueue, &hdev->dump.dump_rx); in hci_devcd_abort()
|
/linux/drivers/media/platform/amphion/ |
H A D | vpu_msgs.c | 289 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/char/tpm/ |
H A D | tpm_vtpm_proxy.c | 53 static struct workqueue_struct *workqueue; variable 480 queue_work(workqueue, &proxy_dev->work); in vtpm_proxy_work_start() 689 workqueue = create_workqueue("tpm-vtpm"); in vtpm_module_init() 690 if (!workqueue) { in vtpm_module_init() 698 destroy_workqueue(workqueue); in vtpm_module_init() 706 destroy_workqueue(workqueue); in vtpm_module_exit()
|
/linux/drivers/input/rmi4/ |
H A 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/drivers/net/ethernet/mellanox/mlx4/ |
H A D | en_main.c | 215 queue_work(mdev->workqueue, &priv->linkstate_task); in mlx4_en_event() 254 destroy_workqueue(mdev->workqueue); in mlx4_en_remove() 332 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); in mlx4_en_probe() 333 if (!mdev->workqueue) { in mlx4_en_probe()
|
/linux/net/qrtr/ |
H A D | ns.c | 25 struct workqueue_struct *workqueue; member 684 queue_work(qrtr_ns.workqueue, &qrtr_ns.work); in qrtr_ns_data_ready() 706 qrtr_ns.workqueue = alloc_ordered_workqueue("qrtr_ns_handler", 0); in qrtr_ns_init() 707 if (!qrtr_ns.workqueue) { in qrtr_ns_init() 752 destroy_workqueue(qrtr_ns.workqueue); in qrtr_ns_init() 762 destroy_workqueue(qrtr_ns.workqueue); in qrtr_ns_remove()
|
/linux/drivers/net/wireless/marvell/libertas/ |
H A D | if_sdio.c | 124 struct workqueue_struct *workqueue; member 968 queue_work(card->workqueue, &card->packet_worker); in if_sdio_host_to_card() 1069 flush_workqueue(card->workqueue); in if_sdio_power_save() 1184 card->workqueue = alloc_workqueue("libertas_sdio", WQ_MEM_RECLAIM, 0); in if_sdio_probe() 1185 if (unlikely(!card->workqueue)) { in if_sdio_probe() 1238 flush_workqueue(card->workqueue); in if_sdio_probe() 1243 destroy_workqueue(card->workqueue); in if_sdio_probe() 1286 destroy_workqueue(card->workqueue); in if_sdio_remove()
|
H A D | if_spi.c | 58 struct workqueue_struct *workqueue; member 984 queue_work(card->workqueue, &card->packet_work); in if_spi_host_to_card() 999 queue_work(card->workqueue, &card->packet_work); in if_spi_host_interrupt() 1156 card->workqueue = alloc_workqueue("libertas_spi", WQ_MEM_RECLAIM, 0); in if_spi_probe() 1157 if (!card->workqueue) { in if_spi_probe() 1188 destroy_workqueue(card->workqueue); in if_spi_probe() 1213 destroy_workqueue(card->workqueue); in libertas_spi_remove() 1226 flush_workqueue(card->workqueue); in if_spi_suspend()
|
/linux/Documentation/fb/ |
H A 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/rust/kernel/ |
H A D | workqueue.rs | 141 … $crate::workqueue::Work::new($crate::optional_name!($($name)?), $crate::static_lock_class!()) 503 unsafe impl$(<$($generics)+>)? $crate::workqueue::HasWork<$work_type $(, $id)?> for $self { 507 … unsafe fn raw_get_work(ptr: *mut Self) -> *mut $crate::workqueue::Work<$work_type $(, $id)?> {
|
/linux/tools/workqueue/ |
H A D | wq_monitor.py | 135 if args.workqueue: 136 for r in args.workqueue:
|