| /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 workqueue9 #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 and11 #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 pool25  * 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.rst95 ``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 more33 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 device117  * @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;  variable221 	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 and194 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 workqueue671  * @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->workqueue137  * @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 delay19 - 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;  variable482 	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()
 
 |