Home
last modified time | relevance | path

Searched refs:worker (Results 1 – 25 of 152) sorted by relevance

1234567

/linux-6.12.1/io_uring/
Dio-wq.c139 static void io_wq_dec_running(struct io_worker *worker);
146 static bool io_worker_get(struct io_worker *worker) in io_worker_get() argument
148 return refcount_inc_not_zero(&worker->ref); in io_worker_get()
151 static void io_worker_release(struct io_worker *worker) in io_worker_release() argument
153 if (refcount_dec_and_test(&worker->ref)) in io_worker_release()
154 complete(&worker->ref_done); in io_worker_release()
168 static inline struct io_wq_acct *io_wq_get_acct(struct io_worker *worker) in io_wq_get_acct() argument
170 return io_get_acct(worker->wq, test_bit(IO_WORKER_F_BOUND, &worker->flags)); in io_wq_get_acct()
181 struct io_worker *worker = current->worker_private; in io_wq_worker_stopped() local
186 return test_bit(IO_WQ_BIT_EXIT, &worker->wq->state); in io_wq_worker_stopped()
[all …]
/linux-6.12.1/kernel/
Dkthread.c777 void __kthread_init_worker(struct kthread_worker *worker, in __kthread_init_worker() argument
781 memset(worker, 0, sizeof(struct kthread_worker)); in __kthread_init_worker()
782 raw_spin_lock_init(&worker->lock); in __kthread_init_worker()
783 lockdep_set_class_and_name(&worker->lock, key, name); in __kthread_init_worker()
784 INIT_LIST_HEAD(&worker->work_list); in __kthread_init_worker()
785 INIT_LIST_HEAD(&worker->delayed_work_list); in __kthread_init_worker()
806 struct kthread_worker *worker = worker_ptr; in kthread_worker_fn() local
813 WARN_ON(worker->task && worker->task != current); in kthread_worker_fn()
814 worker->task = current; in kthread_worker_fn()
816 if (worker->flags & KTW_FREEZABLE) in kthread_worker_fn()
[all …]
Dworkqueue.c217 struct worker *manager; /* L: purely informational */
348 struct worker *rescuer; /* MD: rescue worker */
581 #define for_each_pool_worker(worker, pool) \ argument
582 list_for_each_entry((worker), &(pool)->workers, node) \
972 static inline void worker_set_flags(struct worker *worker, unsigned int flags) in worker_set_flags() argument
974 struct worker_pool *pool = worker->pool; in worker_set_flags()
980 !(worker->flags & WORKER_NOT_RUNNING)) { in worker_set_flags()
984 worker->flags |= flags; in worker_set_flags()
994 static inline void worker_clr_flags(struct worker *worker, unsigned int flags) in worker_clr_flags() argument
996 struct worker_pool *pool = worker->pool; in worker_clr_flags()
[all …]
/linux-6.12.1/tools/perf/bench/
Dfutex-hash.c43 struct worker { struct
73 struct worker *w = (struct worker *) arg; in workerfn()
130 struct worker *worker = NULL; in bench_futex_hash() local
158 worker = calloc(params.nthreads, sizeof(*worker)); in bench_futex_hash()
159 if (!worker) in bench_futex_hash()
183 worker[i].tid = i; in bench_futex_hash()
184 worker[i].futex = calloc(params.nfutexes, sizeof(*worker[i].futex)); in bench_futex_hash()
185 if (!worker[i].futex) in bench_futex_hash()
196 ret = pthread_create(&worker[i].thread, &thread_attr, workerfn, in bench_futex_hash()
197 (void *)(struct worker *) &worker[i]); in bench_futex_hash()
[all …]
Depoll-wait.c118 struct worker { struct
186 struct worker *w = (struct worker *) arg; in workerfn()
240 static void nest_epollfd(struct worker *w) in nest_epollfd()
292 static int do_threads(struct worker *worker, struct perf_cpu_map *cpu) in do_threads() argument
318 struct worker *w = &worker[i]; in do_threads()
366 (void *)(struct worker *) w); in do_threads()
382 struct worker *worker = p; in writerfn() local
394 shuffle((void *)worker, nthreads, sizeof(*worker)); in writerfn()
398 struct worker *w = &worker[i]; in writerfn()
421 struct worker *w1 = (struct worker *) p1; in cmpworker()
[all …]
Dfutex-lock-pi.c27 struct worker { struct
35 static struct worker *worker; variable
84 struct worker *w = (struct worker *) arg; in workerfn()
121 static void create_threads(struct worker *w, struct perf_cpu_map *cpu) in create_threads()
138 worker[i].tid = i; in create_threads()
141 worker[i].futex = calloc(1, sizeof(u_int32_t)); in create_threads()
142 if (!worker[i].futex) in create_threads()
145 worker[i].futex = &global_futex; in create_threads()
155 if (pthread_create(&w[i].thread, &thread_attr, workerfn, &worker[i])) { in create_threads()
192 worker = calloc(params.nthreads, sizeof(*worker)); in bench_futex_lock_pi()
[all …]
Depoll-ctl.c67 struct worker { struct
132 static inline void do_epoll_op(struct worker *w, int op, int fd) in do_epoll_op()
160 static inline void do_random_epoll_op(struct worker *w) in do_random_epoll_op()
174 struct worker *w = (struct worker *) arg; in workerfn()
204 static void init_fdmaps(struct worker *w, int pct) in init_fdmaps()
223 static int do_threads(struct worker *worker, struct perf_cpu_map *cpu) in do_threads() argument
241 struct worker *w = &worker[i]; in do_threads()
277 (void *)(struct worker *) w); in do_threads()
317 struct worker *worker = NULL; in bench_epoll_ctl() local
352 worker = calloc(nthreads, sizeof(*worker)); in bench_epoll_ctl()
[all …]
Dsched-messaging.c150 static void create_thread_worker(union messaging_worker *worker, in create_thread_worker() argument
164 ret = pthread_create(&worker->thread, &attr, func, ctx); in create_thread_worker()
171 static void create_process_worker(union messaging_worker *worker, in create_process_worker() argument
175 worker->pid = fork(); in create_process_worker()
177 if (worker->pid == -1) { in create_process_worker()
179 } else if (worker->pid == 0) { in create_process_worker()
185 static void create_worker(union messaging_worker *worker, in create_worker() argument
189 return create_process_worker(worker, ctx, func); in create_worker()
191 return create_thread_worker(worker, ctx, func); in create_worker()
194 static void reap_worker(union messaging_worker *worker) in reap_worker() argument
[all …]
Dfutex-wake.c36 static pthread_t *worker; variable
169 worker = calloc(params.nthreads, sizeof(*worker)); in bench_futex_wake()
170 if (!worker) in bench_futex_wake()
192 block_threads(worker, cpu); in bench_futex_wake()
221 ret = pthread_join(worker[i], NULL); in bench_futex_wake()
235 free(worker); in bench_futex_wake()
Dfutex-requeue.c36 static pthread_t *worker; variable
194 worker = calloc(params.nthreads, sizeof(*worker)); in bench_futex_requeue()
195 if (!worker) in bench_futex_requeue()
223 block_threads(worker, cpu); in bench_futex_requeue()
295 ret = pthread_join(worker[i], NULL); in bench_futex_requeue()
308 free(worker); in bench_futex_requeue()
/linux-6.12.1/drivers/vhost/
Dvhost.c236 static void vhost_worker_queue(struct vhost_worker *worker, in vhost_worker_queue() argument
244 llist_add(&work->node, &worker->work_list); in vhost_worker_queue()
245 vhost_task_wake(worker->vtsk); in vhost_worker_queue()
251 struct vhost_worker *worker; in vhost_vq_work_queue() local
255 worker = rcu_dereference(vq->worker); in vhost_vq_work_queue()
256 if (worker) { in vhost_vq_work_queue()
258 vhost_worker_queue(worker, work); in vhost_vq_work_queue()
272 static void __vhost_worker_flush(struct vhost_worker *worker) in __vhost_worker_flush() argument
276 if (!worker->attachment_cnt || worker->killed) in __vhost_worker_flush()
282 vhost_worker_queue(worker, &flush.work); in __vhost_worker_flush()
[all …]
/linux-6.12.1/include/linux/
Dkthread.h135 struct kthread_worker *worker; member
163 extern void __kthread_init_worker(struct kthread_worker *worker,
166 #define kthread_init_worker(worker) \ argument
169 __kthread_init_worker((worker), "("#worker")->lock", &__key); \
197 bool kthread_queue_work(struct kthread_worker *worker,
200 bool kthread_queue_delayed_work(struct kthread_worker *worker,
204 bool kthread_mod_delayed_work(struct kthread_worker *worker,
209 void kthread_flush_worker(struct kthread_worker *worker);
214 void kthread_destroy_worker(struct kthread_worker *worker);
Ddevm-helpers.h48 work_func_t worker) in devm_delayed_work_autocancel() argument
50 INIT_DELAYED_WORK(w, worker); in devm_delayed_work_autocancel()
73 work_func_t worker) in devm_work_autocancel() argument
75 INIT_WORK(w, worker); in devm_work_autocancel()
/linux-6.12.1/drivers/net/wireguard/
Dqueueing.c13 struct multicore_worker __percpu *worker = alloc_percpu(struct multicore_worker); in wg_packet_percpu_multicore_worker_alloc() local
15 if (!worker) in wg_packet_percpu_multicore_worker_alloc()
19 per_cpu_ptr(worker, cpu)->ptr = ptr; in wg_packet_percpu_multicore_worker_alloc()
20 INIT_WORK(&per_cpu_ptr(worker, cpu)->work, function); in wg_packet_percpu_multicore_worker_alloc()
22 return worker; in wg_packet_percpu_multicore_worker_alloc()
35 queue->worker = wg_packet_percpu_multicore_worker_alloc(function, queue); in wg_packet_queue_init()
36 if (!queue->worker) { in wg_packet_queue_init()
45 free_percpu(queue->worker); in wg_packet_queue_free()
/linux-6.12.1/drivers/gpu/drm/
Ddrm_vblank_work.c60 kthread_queue_work(vblank->worker, &work->base); in drm_handle_vblank_works()
150 ret = kthread_queue_work(vblank->worker, &work->base); in drm_vblank_work_schedule()
253 kthread_flush_worker(vblank->worker); in drm_vblank_work_flush_all()
276 struct kthread_worker *worker; in drm_vblank_worker_init() local
280 worker = kthread_create_worker(0, "card%d-crtc%d", in drm_vblank_worker_init()
283 if (IS_ERR(worker)) in drm_vblank_worker_init()
284 return PTR_ERR(worker); in drm_vblank_worker_init()
286 vblank->worker = worker; in drm_vblank_worker_init()
288 sched_set_fifo(worker->task); in drm_vblank_worker_init()
Ddrm_flip_work.c97 queue_work(wq, &work->worker); in drm_flip_work_commit()
103 struct drm_flip_work *work = container_of(w, struct drm_flip_work, worker); in flip_worker()
143 INIT_WORK(&work->worker, flip_worker); in drm_flip_work_init()
/linux-6.12.1/samples/seccomp/
Duser-trap.c208 pid_t worker = 0 , tracer = 0; in main() local
215 worker = fork(); in main()
216 if (worker < 0) { in main()
221 if (worker == 0) { in main()
347 if (waitpid(worker, &status, 0) != worker) { in main()
372 if (worker > 0) in main()
373 kill(worker, SIGKILL); in main()
/linux-6.12.1/drivers/gpu/drm/msm/
Dmsm_atomic.c118 timer->worker = kthread_create_worker(0, "atomic-worker-%d", crtc_idx); in msm_atomic_init_pending_timer()
119 if (IS_ERR(timer->worker)) { in msm_atomic_init_pending_timer()
120 int ret = PTR_ERR(timer->worker); in msm_atomic_init_pending_timer()
121 timer->worker = NULL; in msm_atomic_init_pending_timer()
124 sched_set_fifo(timer->worker->task); in msm_atomic_init_pending_timer()
126 msm_hrtimer_work_init(&timer->work, timer->worker, in msm_atomic_init_pending_timer()
135 if (timer->worker) in msm_atomic_destroy_pending_timer()
136 kthread_destroy_worker(timer->worker); in msm_atomic_destroy_pending_timer()
Dmsm_kms.c215 if (priv->event_thread[i].worker) in msm_drm_kms_uninit()
216 kthread_destroy_worker(priv->event_thread[i].worker); in msm_drm_kms_uninit()
272 ev_thread->worker = kthread_create_worker(0, "crtc_event:%d", crtc->base.id); in msm_drm_kms_init()
273 if (IS_ERR(ev_thread->worker)) { in msm_drm_kms_init()
274 ret = PTR_ERR(ev_thread->worker); in msm_drm_kms_init()
276 ev_thread->worker = NULL; in msm_drm_kms_init()
280 sched_set_fifo(ev_thread->worker->task); in msm_drm_kms_init()
Dmsm_io_utils.c120 kthread_queue_work(work->worker, &work->work); in msm_hrtimer_worktimer()
133 struct kthread_worker *worker, in msm_hrtimer_work_init() argument
140 work->worker = worker; in msm_hrtimer_work_init()
/linux-6.12.1/Documentation/core-api/
Dworkqueue.rst20 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.
25 When a new work item gets queued, the worker begins executing again.
32 worker thread per CPU and a single threaded (ST) wq had one worker
42 worker pool. An MT wq could provide only one execution context per CPU
60 * Use per-CPU unified worker pools shared by all wq to provide
64 * Automatically regulate worker pool and level of concurrency so that
84 the worker threads become idle. These worker threads are managed in
85 worker-pools.
[all …]
/linux-6.12.1/drivers/block/
Dloop.c839 struct loop_worker *cur_worker, *worker = NULL; in loop_queue_work() local
854 worker = cur_worker; in loop_queue_work()
862 if (worker) in loop_queue_work()
865 worker = kzalloc(sizeof(struct loop_worker), GFP_NOWAIT | __GFP_NOWARN); in loop_queue_work()
870 if (!worker) { in loop_queue_work()
878 worker->blkcg_css = cmd->blkcg_css; in loop_queue_work()
879 css_get(worker->blkcg_css); in loop_queue_work()
880 INIT_WORK(&worker->work, loop_workfn); in loop_queue_work()
881 INIT_LIST_HEAD(&worker->cmd_list); in loop_queue_work()
882 INIT_LIST_HEAD(&worker->idle_list); in loop_queue_work()
[all …]
/linux-6.12.1/drivers/md/
Ddm-delay.c36 struct task_struct *worker; member
67 return !!dc->worker; in delay_is_fast()
169 if (dc->worker) in delay_dtr()
170 kthread_stop(dc->worker); in delay_dtr()
273 dc->worker = kthread_run(&flush_worker_fn, dc, "dm-delay-flush-worker"); in delay_ctr()
274 if (IS_ERR(dc->worker)) { in delay_ctr()
275 ret = PTR_ERR(dc->worker); in delay_ctr()
276 dc->worker = NULL; in delay_ctr()
324 wake_up_process(dc->worker); in delay_bio()
/linux-6.12.1/drivers/i2c/
Di2c-slave-testunit.c49 struct delayed_work worker; member
122 queue_delayed_work(system_long_wq, &tu->worker, in i2c_slave_testunit_slave_cb()
159 struct testunit_data *tu = container_of(work, struct testunit_data, worker.work); in i2c_slave_testunit_work()
232 INIT_DELAYED_WORK(&tu->worker, i2c_slave_testunit_work); in i2c_slave_testunit_probe()
250 cancel_delayed_work_sync(&tu->worker); in i2c_slave_testunit_remove()
/linux-6.12.1/fs/erofs/
Dzdata.c305 struct kthread_worker *worker; in erofs_destroy_percpu_workers() local
309 worker = rcu_dereference_protected( in erofs_destroy_percpu_workers()
312 if (worker) in erofs_destroy_percpu_workers()
313 kthread_destroy_worker(worker); in erofs_destroy_percpu_workers()
320 struct kthread_worker *worker = in erofs_init_percpu_worker() local
323 if (IS_ERR(worker)) in erofs_init_percpu_worker()
324 return worker; in erofs_init_percpu_worker()
326 sched_set_fifo_low(worker->task); in erofs_init_percpu_worker()
327 return worker; in erofs_init_percpu_worker()
332 struct kthread_worker *worker; in erofs_init_percpu_workers() local
[all …]

1234567