Lines Matching full:workqueue

3  * kernel/workqueue.c - generic async execution with shared worker pool
25 * Please read Documentation/core-api/workqueue.rst for details.
34 #include <linux/workqueue.h>
206 * tools/workqueue/wq_monitor.py.
222 * The per-pool workqueue. While queued, the lower WORK_STRUCT_FLAG_BITS
229 struct workqueue_struct *wq; /* I: the owning workqueue */
271 * Structure used to wait for workqueue flush.
282 * The externally visible workqueue. It relays the issued work items to
314 char name[WQ_NAME_LEN]; /* I: workqueue name */
444 #include <trace/events/workqueue.h>
495 * for_each_pwq - iterate through all pool_workqueues of the specified workqueue
497 * @wq: the target workqueue
986 * before the original execution finishes, workqueue will identify the
1157 * should be using an unbound workqueue instead.
1204 …printk_deferred(KERN_WARNING "workqueue: %ps hogged CPU for >%luus %llu times, consider switching … in wq_cpu_intensive_report()
1386 * As this function doesn't involve any workqueue-related locking, it
1480 * decrement nr_in_flight of its pwq and handle workqueue flushing.
1661 * same workqueue.
1688 pr_warn_once("workqueue: round-robin CPU selection forced, expect performance impact\n"); in wq_select_unbound_cpu()
1721 * For a draining wq, only works from the same workqueue are in __queue_work()
1781 WARN_ONCE(true, "workqueue: per-cpu pwq for %s on cpu%d has 0 refcnt", in __queue_work()
1815 * @wq: workqueue to use
1876 * @wq: workqueue to use
1904 * If this is used with a per-cpu workqueue then the logic in in queue_work_node()
1968 * @wq: workqueue to use
1999 * @wq: workqueue to use
2046 * @wq: workqueue to use
2155 * create_worker - create a new workqueue worker
2175 pr_err_once("workqueue: Failed to allocate a worker ID: %pe\n", in create_worker()
2182 pr_err_once("workqueue: Failed to allocate a worker\n"); in create_worker()
2198 pr_err("workqueue: Interrupted when creating a worker thread \"kworker/%s\"\n", in create_worker()
2201 pr_err_once("workqueue: Failed to create a worker thread: %pe", in create_worker()
2642 pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n" in process_one_work()
2724 * work items regardless of their specific target workqueue. The only
2735 /* tell the scheduler that this is a workqueue worker */ in worker_thread()
2808 * Workqueue rescuer thread function. There's one rescuer for each
2809 * workqueue which has WQ_MEM_RECLAIM set.
2842 * By the time the rescuer is requested to stop, the workqueue in rescuer_thread()
2870 * Slurp in all works issued via this workqueue and in rescuer_thread()
2941 * @target_wq: workqueue being flushed
2942 * @target_work: work item being flushed (NULL for workqueue flushes)
2946 * reclaiming memory or running on a workqueue which doesn't have
2962 "workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%ps", in check_flush_dependency()
2966 "workqueue: WQ_MEM_RECLAIM %s:%ps is flushing !WQ_MEM_RECLAIM %s:%ps", in check_flush_dependency()
3055 * flush_workqueue_prep_pwqs - prepare pwqs for workqueue flushing
3056 * @wq: workqueue being flushed
3060 * Prepare pwqs for workqueue flushing.
3127 * @wq: workqueue to flush
3284 * drain_workqueue - drain a workqueue
3285 * @wq: workqueue to drain
3287 * Wait until the workqueue becomes empty. While draining is in progress,
3325 pr_warn("workqueue %s: %s() isn't complete after %u tries\n", in drain_workqueue()
3374 * single-threaded or rescuer equipped workqueue. in start_flush_work()
3517 * another workqueue. On return from this function, @work is
3523 * The caller must ensure that the workqueue on which @work was last
3645 * system workqueue and blocks until all CPUs have completed.
3764 * Some attrs fields are workqueue-only. Clear them for worker_pool's. See the
4148 * workqueue's saved_max_active and activate inactive work items
4251 * @attrs: the wq_attrs of the default pwq of the target workqueue
4255 * Calculate the cpumask a workqueue with @attrs should use on @pod. If
4286 pr_warn_once("WARNING: workqueue cpumask: online intersect > " in wq_calc_pod_cpumask()
4309 struct workqueue_struct *wq; /* target workqueue */
4457 * apply_workqueue_attrs - apply new workqueue_attrs to an unbound workqueue
4458 * @wq: the target workqueue
4461 * Apply @attrs to an unbound workqueue @wq. Unless disabled, this function maps
4489 * @wq: the target workqueue
4502 * Note that when the last allowed CPU of a pod goes offline for a workqueue
4504 * executing the work items for the workqueue will lose their CPU affinity and
4506 * CPU_DOWN. If a workqueue user wants strict affinity, it's the user's
4541 pr_warn("workqueue: allocation failed while updating CPU pod affinity of \"%s\"\n", in wq_update_pod()
4598 "ordering guarantee broken for workqueue %s\n", wq->name); in alloc_and_link_pwqs()
4630 pr_warn("workqueue: max_active %d requested for %s is out of range, clamping between %d and %d\n", in wq_clamp_max_active()
4650 pr_err("workqueue: Failed to allocate a rescuer for wq \"%s\"\n", in init_rescuer()
4659 pr_err("workqueue: Failed to create a rescuer kthread for wq \"%s\": %pe", in init_rescuer()
4685 * workqueue, keep the previous behavior to avoid subtle breakages. in alloc_workqueue()
4782 * destroy_workqueue - safely terminate a workqueue
4783 * @wq: target workqueue
4785 * Safely destroy a workqueue. All work currently pending will be done first.
4798 /* mark the workqueue destruction is in progress */ in destroy_workqueue()
4870 * workqueue_set_max_active - adjust max_active of a workqueue
4871 * @wq: target workqueue
4904 * Determine if %current task is a workqueue worker and what it's working on.
4907 * Return: work struct if %current task is a workqueue worker, %NULL otherwise.
4918 * current_is_workqueue_rescuer - is %current workqueue rescuer?
4920 * Determine whether %current is a workqueue rescuer. Can be used from
4923 * Return: %true if %current is a workqueue rescuer. %false otherwise.
4933 * workqueue_congested - test whether a workqueue is congested
4935 * @wq: target workqueue
4937 * Test whether @wq's cpu workqueue for @cpu is congested. There is
4944 * pool_workqueues, each with its own congested state. A workqueue being
4945 * congested on one CPU doesn't mean that the workqueue is contested on any
5035 * name of the workqueue being serviced and worker description set with
5061 * Carefully copy the associated workqueue's workfn, name and desc. in print_worker_info()
5207 * show_one_workqueue - dump state of specified workqueue
5208 * @wq: workqueue whose state will be printed
5222 if (idle) /* Nothing to print for idle workqueue */ in show_one_workqueue()
5225 pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags); in show_one_workqueue()
5300 * show_all_workqueues - dump workqueue state
5324 * show_freezable_workqueues - dump freezable workqueue state
5918 * /sys/bus/workqueue/devices/WQ_NAME. All visible workqueues have the
5921 * per_cpu RO bool : whether the workqueue is per-cpu or unbound
6154 .name = "workqueue",
6218 * workqueue_sysfs_register - make a workqueue visible in sysfs
6219 * @wq: the workqueue to register
6221 * Expose @wq in sysfs under /sys/bus/workqueue/devices.
6225 * Workqueue user should use this function directly iff it wants to apply
6226 * workqueue_attrs before making the workqueue visible in sysfs; otherwise,
6287 * @wq: the workqueue to unregister
6306 * Workqueue watchdog.
6310 * indefinitely. Workqueue stalls can be very difficult to debug as the
6311 * usual warning mechanisms don't trigger and internal workqueue state is
6314 * Workqueue watchdog monitors all worker pools periodically and dumps
6319 * "workqueue.watchdog_thresh" which can be updated at runtime through the
6436 pr_emerg("BUG: workqueue lockup - pool"); in wq_watchdog_timer_fn()
6526 pr_warn("workqueue: Restricting unbound_cpumask (%*pb) with %s (%*pb) leaves no CPU, ignoring\n", in restrict_unbound_cpumask()
6535 * workqueue_init_early - early init for workqueue subsystem
6537 * This is the first step of three-staged workqueue subsystem initialization and
6557 restrict_unbound_cpumask("workqueue.unbound_cpus", &wq_cmdline_cpumask); in workqueue_init_early()
6674 * workqueue_init - bring workqueue subsystem fully online
6676 * This is the second step of three-staged workqueue subsystem initialization
6704 "workqueue: failed to create early rescuer for %s", in workqueue_init()
6790 * This is the third step of there-staged workqueue subsystem initialization and
6808 * worker pool. Explicitly call wq_update_pod() on all workqueue and CPU in workqueue_init_topology()
6831 pr_warn("workqueue.unbound_cpus: incorrect CPU range, using default\n"); in workqueue_unbound_cpus_setup()
6836 __setup("workqueue.unbound_cpus=", workqueue_unbound_cpus_setup);