| /linux/include/linux/ |
| H A D | workqueue.h | 3 * workqueue.h --- work queue handling for Linux. 36 /* color for workqueue flushing */ 43 * bytes w/ DEBUG_OBJECTS_WORK) and allows 16 workqueue flush colors. 118 /* target workqueue and CPU ->timer uses to queue ->work */ 127 /* target workqueue ->rcu uses to queue ->work */ 143 * struct workqueue_attrs - A struct for workqueue attributes. 145 * This can be used to change attributes of an unbound workqueue. 156 * Work items in this workqueue are affine to these CPUs and not allowed 157 * to execute on other CPUs. A pool serving a workqueue must have the 168 * subset of ->cpumask. A workqueue can be associated with multiple [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/kernel/ |
| H A D | workqueue_internal.h | 5 * 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.
|
| H A D | workqueue.c | 3 * 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> 237 * tools/workqueue/wq_monitor.py. 253 * The per-pool workqueue. While queued, bits below WORK_PWQ_SHIFT 260 struct workqueue_struct *wq; /* I: the owning workqueue */ 303 * Structure used to wait for workqueue flush. 314 * Unlike in a per-cpu workqueue where max_active limits its concurrency level 315 * on each CPU, in an unbound workqueue, max_active applies to the whole system. 334 * The externally visible workqueue. It relays the issued work items to [all …]
|
| /linux/rust/kernel/ |
| H A D | workqueue.rs | 25 //! * 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); 79 //! use kernel::workqueue::{self, impl_has_work, new_work, Work, WorkItem}; 124 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 1>(val); 128 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 2>(val); 138 //! use kernel::workqueue::{self, impl_has_delayed_work, new_delayed_work, DelayedWork, WorkItem}; 171 //! /// This method will enqueue the struct for execution on the system workqueue, wher [all...] |
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | workqueue.rst | 4 :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/tools/workqueue/ |
| H A D | wq_monitor.py | 10 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:
|
| H A D | wq_dump.py | 7 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/drivers/gpu/drm/xe/ |
| H A D | xe_guc_submit_types.h | 47 /** @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/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", WQ_PERCPU, 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/drivers/hid/intel-thc-hid/intel-quickspi/ |
| H A D | quickspi-dev.h | 115 * @reset_ack_wq: workqueue for waiting reset response from device 117 * @nondma_int_received_wq: workqueue for waiting THC non-DMA interrupt 119 * @report_desc_got_wq: workqueue for waiting device report descriptor 121 * @set_power_on_wq: workqueue for waiting set power on response from device 123 * @get_feature_cmpl_wq: workqueue for waiting get feature response from device 125 * @set_feature_cmpl_wq: workqueue for waiting set feature to device
|
| /linux/arch/sh/include/asm/ |
| H A D | push-switch.h | 7 #include <linux/workqueue.h> 15 /* workqueue */ 17 /* platform device, for workqueue handler */
|
| /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.h | 7 #include <linux/workqueue.h> 46 struct workqueue_struct *workqueue; member 54 struct workqueue_struct *workqueue,
|
| 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()
|
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | wq_failures.c | 30 /* 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/Documentation/driver-api/crypto/iaa/ |
| H A D | iaa-crypto.rst | 175 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. 448 system to be configured properly as a kernel workqueue with a 449 workqueue driver_name of "crypto". 525 system to be configured properly as a kernel workqueue with a 526 workqueue driver_name of "crypto". [all …]
|
| /linux/drivers/scsi/fcoe/ |
| H A D | fcoe_sysfs.c | 670 * 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/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()
|
| /linux/include/linux/cdx/ |
| H A D | mcdi.h | 90 * @work: The work item for this command, queued in mcdi->workqueue 137 * @workqueue: Workqueue used for delayed processing 152 struct workqueue_struct *workqueue; member
|
| /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/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 482 queue_work(workqueue, &proxy_dev->work); in vtpm_proxy_work_start() 691 workqueue = create_workqueue("tpm-vtpm"); in vtpm_module_init() 692 if (!workqueue) { in vtpm_module_init() 693 pr_err("couldn't create workqueue\n"); in vtpm_module_init() 700 destroy_workqueue(workqueue); in vtpm_module_init() 708 destroy_workqueue(workqueue); in vtpm_module_exit()
|
| /linux/include/drm/ |
| H A D | gpu_scheduler.h | 31 #include <linux/workqueue.h> 442 * This method is called in a workqueue context - either from the 444 * driver passed NULL, a separate, ordered workqueue the scheduler 503 * synchronization is to create an ordered workqueue (using 553 * @submit_wq: workqueue used to queue @work_run_job and @work_free_job 554 * @timeout_wq: workqueue used to queue @work_tdr 604 * @submit_wq: workqueue to use for submission. If NULL, an ordered wq is 612 * @timeout_wq: workqueue to use for timeout work. If NULL, the system_wq is used.
|
| /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() 329 /* Create our own workqueue for reset/multicast tasks in mlx4_en_probe() 330 * Note: we cannot use the shared workqueue because of deadlocks caused in mlx4_en_probe() 332 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); in mlx4_en_probe() 333 if (!mdev->workqueue) { in mlx4_en_probe()
|