/kernel/linux/linux-5.10/io_uring/ |
H A D | io-wq.c | 3 * Basic worker thread pool for io_uring 26 IO_WORKER_F_FREE = 4, /* worker on free list */ 88 * Per-node worker thread pool 139 static void io_wqe_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_wqe_acct *io_wqe_get_acct(struct io_worker *worker) in io_wqe_get_acct() argument 181 struct io_worker *worker = current->pf_io_worker; io_wq_worker_stopped() local 189 io_worker_cancel_cb(struct io_worker *worker) io_worker_cancel_cb() argument 206 struct io_worker *worker; io_task_worker_match() local 214 io_worker_exit(struct io_worker *worker) io_worker_exit() argument 265 struct io_worker *worker; __must_hold() local 314 io_wqe_inc_running(struct io_worker *worker) io_wqe_inc_running() argument 323 struct io_worker *worker; create_worker_cb() local 349 io_queue_worker_create(struct io_worker *worker, struct io_wqe_acct *acct, task_work_func_t func) io_queue_worker_create() argument 534 io_assign_current_work(struct io_worker *worker, struct io_wq_work *work) io_assign_current_work() argument 621 struct io_worker *worker = data; io_wqe_worker() local 680 struct io_worker *worker = tsk->pf_io_worker; io_wq_worker_running() local 698 struct io_worker *worker = tsk->pf_io_worker; io_wq_worker_sleeping() local 714 io_init_new_worker(struct io_wqe *wqe, struct io_worker *worker, struct task_struct *tsk) io_init_new_worker() argument 757 struct io_worker *worker; create_worker_cont() local 797 struct io_worker *worker = container_of(work, struct io_worker, work); io_workqueue_create() local 807 struct io_worker *worker; create_io_worker() local 853 struct io_worker *worker; io_wq_for_each_worker() local 870 io_wq_worker_wake(struct io_worker *worker, void *data) io_wq_worker_wake() argument 983 io_wq_worker_cancel(struct io_worker *worker, void *data) io_wq_worker_cancel() argument 1208 struct io_worker *worker; io_task_work_match() local 1226 struct io_worker *worker; io_wq_cancel_tw_create() local 1300 io_wq_worker_affinity(struct io_worker *worker, void *data) io_wq_worker_affinity() argument [all...] |
/kernel/linux/linux-6.6/io_uring/ |
H A D | io-wq.c | 3 * Basic worker thread pool for io_uring 30 IO_WORKER_F_FREE = 4, /* worker on free list */ 137 static void io_wq_dec_running(struct io_worker *worker); 144 static bool io_worker_get(struct io_worker *worker) in io_worker_get() argument 146 return refcount_inc_not_zero(&worker->ref); in io_worker_get() 149 static void io_worker_release(struct io_worker *worker) in io_worker_release() argument 151 if (refcount_dec_and_test(&worker->ref)) in io_worker_release() 152 complete(&worker->ref_done); in io_worker_release() 166 static inline struct io_wq_acct *io_wq_get_acct(struct io_worker *worker) in io_wq_get_acct() argument 168 return io_get_acct(worker in io_wq_get_acct() 179 struct io_worker *worker = current->worker_private; io_wq_worker_stopped() local 187 io_worker_cancel_cb(struct io_worker *worker) io_worker_cancel_cb() argument 203 struct io_worker *worker; io_task_worker_match() local 211 io_worker_exit(struct io_worker *worker) io_worker_exit() argument 275 struct io_worker *worker; __must_hold() local 327 io_wq_inc_running(struct io_worker *worker) io_wq_inc_running() argument 336 struct io_worker *worker; create_worker_cb() local 362 io_queue_worker_create(struct io_worker *worker, struct io_wq_acct *acct, task_work_func_t func) io_queue_worker_create() argument 408 io_wq_dec_running(struct io_worker *worker) io_wq_dec_running() argument 431 __io_worker_busy(struct io_wq *wq, struct io_worker *worker) __io_worker_busy() argument 532 io_assign_current_work(struct io_worker *worker, struct io_wq_work *work) io_assign_current_work() argument 628 struct io_worker *worker = data; io_wq_worker() local 694 struct io_worker *worker = tsk->worker_private; io_wq_worker_running() local 712 struct io_worker *worker = tsk->worker_private; io_wq_worker_sleeping() local 725 io_init_new_worker(struct io_wq *wq, struct io_worker *worker, struct task_struct *tsk) io_init_new_worker() argument 767 struct io_worker *worker; create_worker_cont() local 809 struct io_worker *worker = container_of(work, struct io_worker, work); io_workqueue_create() local 819 struct io_worker *worker; create_io_worker() local 865 struct io_worker *worker; io_wq_for_each_worker() local 882 io_wq_worker_wake(struct io_worker *worker, void *data) io_wq_worker_wake() argument 986 __io_wq_worker_cancel(struct io_worker *worker, struct io_cb_cancel_data *match, struct io_wq_work *work) __io_wq_worker_cancel() argument 999 io_wq_worker_cancel(struct io_worker *worker, void *data) io_wq_worker_cancel() argument 1200 struct io_worker *worker; io_task_work_match() local 1218 struct io_worker *worker; io_wq_cancel_tw_create() local 1279 io_wq_worker_affinity(struct io_worker *worker, void *data) io_wq_worker_affinity() argument [all...] |
/kernel/linux/linux-6.6/kernel/ |
H A D | kthread.c | 756 void __kthread_init_worker(struct kthread_worker *worker, in __kthread_init_worker() argument 760 memset(worker, 0, sizeof(struct kthread_worker)); in __kthread_init_worker() 761 raw_spin_lock_init(&worker->lock); in __kthread_init_worker() 762 lockdep_set_class_and_name(&worker->lock, key, name); in __kthread_init_worker() 763 INIT_LIST_HEAD(&worker->work_list); in __kthread_init_worker() 764 INIT_LIST_HEAD(&worker->delayed_work_list); in __kthread_init_worker() 772 * This function implements the main cycle of kthread worker. It processes 780 * Also the works must not be handled by more than one worker at the same time, 785 struct kthread_worker *worker = worker_ptr; in kthread_worker_fn() local 790 * worker user in kthread_worker_fn() 842 struct kthread_worker *worker; __kthread_create_worker() local 885 struct kthread_worker *worker; kthread_create_worker() local 935 struct kthread_worker *worker; kthread_create_worker_on_cpu() local 951 queuing_blocked(struct kthread_worker *worker, struct kthread_work *work) queuing_blocked() argument 959 kthread_insert_work_sanity_check(struct kthread_worker *worker, struct kthread_work *work) kthread_insert_work_sanity_check() argument 969 kthread_insert_work(struct kthread_worker *worker, struct kthread_work *work, struct list_head *pos) kthread_insert_work() argument 995 kthread_queue_work(struct kthread_worker *worker, struct kthread_work *work) kthread_queue_work() argument 1023 struct kthread_worker *worker = work->worker; kthread_delayed_work_timer_fn() local 1047 __kthread_queue_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) __kthread_queue_delayed_work() argument 1091 kthread_queue_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) kthread_queue_delayed_work() argument 1135 struct kthread_worker *worker; kthread_flush_work() local 1173 struct kthread_worker *worker = work->worker; kthread_cancel_delayed_work_timer() local 1238 kthread_mod_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) kthread_mod_delayed_work() argument 1287 struct kthread_worker *worker = work->worker; __kthread_cancel_work_sync() local 1366 kthread_flush_worker(struct kthread_worker *worker) kthread_flush_worker() argument 1390 kthread_destroy_worker(struct kthread_worker *worker) kthread_destroy_worker() argument [all...] |
H A D | workqueue.c | 3 * kernel/workqueue.c - generic async execution with shared worker pool 19 * executed in process context. The worker pool is shared and 20 * automatically managed. There are two worker pools for each CPU (one for 79 /* worker flags */ 84 WORKER_UNBOUND = 1 << 7, /* worker is unbound */ 85 WORKER_REBOUND = 1 << 8, /* worker was rebound */ 128 * K: Only modified by worker while holding pool->lock. Can be safely read by 132 * S: Only modified by worker self. 157 /* struct worker is defined in workqueue_internal.h */ 183 struct timer_list idle_timer; /* L: worker idl 929 worker_set_flags(struct worker *worker, unsigned int flags) worker_set_flags() argument 951 worker_clr_flags(struct worker *worker, unsigned int flags) worker_clr_flags() argument 989 worker_enter_idle(struct worker *worker) worker_enter_idle() argument 1022 worker_leave_idle(struct worker *worker) worker_leave_idle() argument 1069 struct worker *worker; find_worker_executing_work() local 1134 assign_work(struct work_struct *work, struct worker *worker, struct work_struct **nextp) assign_work() argument 1169 struct worker *worker = first_idle_worker(pool); kick_pool() local 1308 struct worker *worker = kthread_data(task); wq_worker_running() local 1342 struct worker *worker = kthread_data(task); wq_worker_sleeping() local 1388 struct worker *worker = kthread_data(task); wq_worker_tick() local 1455 struct worker *worker = kthread_data(task); wq_worker_last_func() local 2050 struct worker *worker; is_chained_work() local 2133 struct worker *worker; __queue_work() local 2459 struct worker *worker; alloc_worker() local 2489 worker_attach_to_pool(struct worker *worker, struct worker_pool *pool) worker_attach_to_pool() argument 2521 worker_detach_from_pool(struct worker *worker) worker_detach_from_pool() argument 2557 struct worker *worker; create_worker() local 2626 unbind_worker(struct worker *worker) unbind_worker() argument 2639 struct worker *worker, *tmp; wake_dying_workers() local 2669 set_worker_dying(struct worker *worker, struct list_head *list) set_worker_dying() argument 2712 struct worker *worker; idle_worker_timeout() local 2755 struct worker *worker; idle_cull_fn() local 2894 manage_workers(struct worker *worker) manage_workers() argument 3082 process_scheduled_works(struct worker *worker) process_scheduled_works() argument 3121 struct worker *worker = __worker; worker_thread() local 3343 struct worker *worker; check_flush_dependency() local 3396 insert_wq_barrier(struct pool_workqueue *pwq, struct wq_barrier *barr, struct work_struct *target, struct worker *worker) insert_wq_barrier() argument 3730 struct worker *worker = NULL; start_flush_work() local 4405 struct worker *worker; put_unbound_pool() local 5402 struct worker *worker = current_wq_worker(); current_work() local 5418 struct worker *worker = current_wq_worker(); current_is_workqueue_rescuer() local 5509 struct worker *worker = current_wq_worker(); set_worker_desc() local 5540 struct worker *worker; print_worker_info() local 5626 struct worker *worker; show_pwq() local 5747 struct worker *worker; show_one_worker_pool() local 5851 struct worker *worker = kthread_data(task); wq_worker_comm() local 5896 struct worker *worker; unbind_workers() local 5949 struct worker *worker; rebind_workers() local 6010 struct worker *worker; restore_unbound_workers_cpumask() local 6833 struct worker *worker; show_cpu_pool_hog() local [all...] |
/kernel/linux/linux-5.10/kernel/ |
H A D | kthread.c | 689 void __kthread_init_worker(struct kthread_worker *worker, in __kthread_init_worker() argument 693 memset(worker, 0, sizeof(struct kthread_worker)); in __kthread_init_worker() 694 raw_spin_lock_init(&worker->lock); in __kthread_init_worker() 695 lockdep_set_class_and_name(&worker->lock, key, name); in __kthread_init_worker() 696 INIT_LIST_HEAD(&worker->work_list); in __kthread_init_worker() 697 INIT_LIST_HEAD(&worker->delayed_work_list); in __kthread_init_worker() 705 * This function implements the main cycle of kthread worker. It processes 713 * Also the works must not be handled by more than one worker at the same time, 718 struct kthread_worker *worker = worker_ptr; in kthread_worker_fn() local 723 * worker user in kthread_worker_fn() 768 struct kthread_worker *worker; __kthread_create_worker() local 811 struct kthread_worker *worker; kthread_create_worker() local 843 struct kthread_worker *worker; kthread_create_worker_on_cpu() local 859 queuing_blocked(struct kthread_worker *worker, struct kthread_work *work) queuing_blocked() argument 867 kthread_insert_work_sanity_check(struct kthread_worker *worker, struct kthread_work *work) kthread_insert_work_sanity_check() argument 877 kthread_insert_work(struct kthread_worker *worker, struct kthread_work *work, struct list_head *pos) kthread_insert_work() argument 901 kthread_queue_work(struct kthread_worker *worker, struct kthread_work *work) kthread_queue_work() argument 929 struct kthread_worker *worker = work->worker; kthread_delayed_work_timer_fn() local 953 __kthread_queue_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) __kthread_queue_delayed_work() argument 998 kthread_queue_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) kthread_queue_delayed_work() argument 1042 struct kthread_worker *worker; kthread_flush_work() local 1080 struct kthread_worker *worker = work->worker; kthread_cancel_delayed_work_timer() local 1145 kthread_mod_delayed_work(struct kthread_worker *worker, struct kthread_delayed_work *dwork, unsigned long delay) kthread_mod_delayed_work() argument 1194 struct kthread_worker *worker = work->worker; __kthread_cancel_work_sync() local 1273 kthread_flush_worker(struct kthread_worker *worker) kthread_flush_worker() argument 1293 kthread_destroy_worker(struct kthread_worker *worker) kthread_destroy_worker() argument [all...] |
H A D | workqueue.c | 3 * kernel/workqueue.c - generic async execution with shared worker pool 19 * executed in process context. The worker pool is shared and 20 * automatically managed. There are two worker pools for each CPU (one for 77 /* worker flags */ 82 WORKER_UNBOUND = 1 << 7, /* worker is unbound */ 83 WORKER_REBOUND = 1 << 8, /* worker was rebound */ 146 /* struct worker is defined in workqueue_internal.h */ 163 struct timer_list idle_timer; /* L: worker idle timeout */ 170 struct worker *manager; /* L: purely informational */ 174 struct ida worker_ida; /* worker ID 838 struct worker *worker = first_idle_worker(pool); wake_up_worker() local 852 struct worker *worker = kthread_data(task); wq_worker_running() local 880 struct worker *next, *worker = kthread_data(task); wq_worker_sleeping() local 946 struct worker *worker = kthread_data(task); wq_worker_last_func() local 961 worker_set_flags(struct worker *worker, unsigned int flags) worker_set_flags() argument 986 worker_clr_flags(struct worker *worker, unsigned int flags) worker_clr_flags() argument 1041 struct worker *worker; find_worker_executing_work() local 1365 struct worker *worker; is_chained_work() local 1450 struct worker *worker; __queue_work() local 1781 worker_enter_idle(struct worker *worker) worker_enter_idle() argument 1821 worker_leave_idle(struct worker *worker) worker_leave_idle() argument 1834 struct worker *worker; alloc_worker() local 1856 worker_attach_to_pool(struct worker *worker, struct worker_pool *pool) worker_attach_to_pool() argument 1886 worker_detach_from_pool(struct worker *worker) worker_detach_from_pool() argument 1921 struct worker *worker = NULL; create_worker() local 1979 destroy_worker(struct worker *worker) destroy_worker() argument 2006 struct worker *worker; idle_worker_timeout() local 2143 manage_workers(struct worker *worker) manage_workers() argument 2339 process_scheduled_works(struct worker *worker) process_scheduled_works() argument 2372 struct worker *worker = __worker; worker_thread() local 2610 struct worker *worker; check_flush_dependency() local 2663 insert_wq_barrier(struct pool_workqueue *pwq, struct wq_barrier *barr, struct work_struct *target, struct worker *worker) insert_wq_barrier() argument 2990 struct worker *worker = NULL; start_flush_work() local 3553 struct worker *worker; put_unbound_pool() local 4519 struct worker *worker = current_wq_worker(); current_work() local 4535 struct worker *worker = current_wq_worker(); current_is_workqueue_rescuer() local 4628 struct worker *worker = current_wq_worker(); set_worker_desc() local 4659 struct worker *worker; print_worker_info() local 4714 struct worker *worker; show_pwq() local 4829 struct worker *worker; show_workqueue_state() local 4880 struct worker *worker = kthread_data(task); wq_worker_comm() local 4925 struct worker *worker; unbind_workers() local 4983 struct worker *worker; rebind_workers() local 5053 struct worker *worker; restore_unbound_workers_cpumask() local [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | kthread.h | 104 struct kthread_worker *worker; member 114 #define KTHREAD_WORKER_INIT(worker) { \ 115 .lock = __RAW_SPIN_LOCK_UNLOCKED((worker).lock), \ 116 .work_list = LIST_HEAD_INIT((worker).work_list), \ 117 .delayed_work_list = LIST_HEAD_INIT((worker).delayed_work_list),\ 131 #define DEFINE_KTHREAD_WORKER(worker) \ 132 struct kthread_worker worker = KTHREAD_WORKER_INIT(worker) 146 # define KTHREAD_WORKER_INIT_ONSTACK(worker) \ 147 ({ kthread_init_worker(&worker); worke [all...] |
/kernel/linux/linux-5.10/tools/perf/bench/ |
H A D | futex-hash.c | 46 struct worker { struct 70 struct worker *w = (struct worker *) arg; in workerfn() 127 struct worker *worker = NULL; in bench_futex_hash() local 148 worker = calloc(nthreads, sizeof(*worker)); in bench_futex_hash() 149 if (!worker) in bench_futex_hash() 167 worker[i].tid = i; in bench_futex_hash() 168 worker[ in bench_futex_hash() [all...] |
H A D | futex-lock-pi.c | 26 struct worker { struct 34 static struct worker *worker; variable 81 struct worker *w = (struct worker *) arg; in workerfn() 118 static void create_threads(struct worker *w, pthread_attr_t thread_attr, in create_threads() 127 worker[i].tid = i; in create_threads() 130 worker[i].futex = calloc(1, sizeof(u_int32_t)); in create_threads() 131 if (!worker[i].futex) in create_threads() 134 worker[ in create_threads() [all...] |
H A D | epoll-wait.c | 9 * epoll instance for N worker threads): 11 * |---> [worker A] 12 * |---> [worker B] 13 * [combined queue] .---> [worker C] 14 * |---> [worker D] 15 * |---> [worker E] 18 * queueing (which refers to one epoll instance per worker). For example, 21 * worker does a limited amount of processing. 23 * [queue A] ---> [worker] 24 * [queue B] ---> [worker] 118 struct worker { global() struct 292 do_threads(struct worker *worker, struct perf_cpu_map *cpu) do_threads() argument 369 struct worker *worker = p; writerfn() local 418 struct worker *worker = NULL; bench_epoll_wait() local [all...] |
H A D | epoll-ctl.c | 67 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 234 struct worker *w = &worker[ in do_threads() 304 struct worker *worker = NULL; bench_epoll_ctl() local [all...] |
H A D | futex-requeue.c | 40 static pthread_t *worker; variable 139 worker = calloc(nthreads, sizeof(*worker)); in bench_futex_requeue() 140 if (!worker) in bench_futex_requeue() 165 block_threads(worker, thread_attr, cpu); in bench_futex_requeue() 204 ret = pthread_join(worker[i], NULL); in bench_futex_requeue() 218 free(worker); in bench_futex_requeue()
|
H A D | futex-wake.c | 41 pthread_t *worker; variable 147 worker = calloc(nthreads, sizeof(*worker)); in bench_futex_wake() 148 if (!worker) in bench_futex_wake() 170 block_threads(worker, thread_attr, cpu); in bench_futex_wake() 197 ret = pthread_join(worker[i], NULL); in bench_futex_wake() 212 free(worker); in bench_futex_wake()
|
/kernel/linux/linux-6.6/tools/perf/bench/ |
H A D | futex-hash.c | 43 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[ in bench_futex_hash() [all...] |
H A D | futex-lock-pi.c | 27 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[ in create_threads() [all...] |
H A D | epoll-wait.c | 9 * epoll instance for N worker threads): 11 * |---> [worker A] 12 * |---> [worker B] 13 * [combined queue] .---> [worker C] 14 * |---> [worker D] 15 * |---> [worker E] 18 * queueing (which refers to one epoll instance per worker). For example, 21 * worker does a limited amount of processing. 23 * [queue A] ---> [worker] 24 * [queue B] ---> [worker] 118 struct worker { global() struct 292 do_threads(struct worker *worker, struct perf_cpu_map *cpu) do_threads() argument 382 struct worker *worker = p; writerfn() local 431 struct worker *worker = NULL; bench_epoll_wait() local [all...] |
H A D | epoll-ctl.c | 67 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[ in do_threads() 317 struct worker *worker = NULL; bench_epoll_ctl() local [all...] |
/kernel/linux/linux-6.6/include/linux/ |
H A D | kthread.h | 134 struct kthread_worker *worker; member 162 extern void __kthread_init_worker(struct kthread_worker *worker, 165 #define kthread_init_worker(worker) \ 168 __kthread_init_worker((worker), "("#worker")->lock", &__key); \ 196 bool kthread_queue_work(struct kthread_worker *worker, 199 bool kthread_queue_delayed_work(struct kthread_worker *worker, 203 bool kthread_mod_delayed_work(struct kthread_worker *worker, 208 void kthread_flush_worker(struct kthread_worker *worker); 213 void kthread_destroy_worker(struct kthread_worker *worker); [all...] |
H A D | devm-helpers.h | 38 * @worker: Worker function 48 work_func_t worker) in devm_delayed_work_autocancel() 50 INIT_DELAYED_WORK(w, worker); in devm_delayed_work_autocancel() 63 * @worker: Worker function 73 work_func_t worker) in devm_work_autocancel() 75 INIT_WORK(w, worker); in devm_work_autocancel() 46 devm_delayed_work_autocancel(struct device *dev, struct delayed_work *w, work_func_t worker) devm_delayed_work_autocancel() argument 71 devm_work_autocancel(struct device *dev, struct work_struct *w, work_func_t worker) devm_work_autocancel() argument
|
/kernel/linux/linux-5.10/drivers/net/wireguard/ |
H A D | queueing.c | 13 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()
|
/kernel/linux/linux-6.6/drivers/net/wireguard/ |
H A D | queueing.c | 13 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()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/ |
H A D | drm_vblank_work.c | 60 kthread_queue_work(vblank->worker, &work->base); in drm_handle_vblank_works() 147 ret = kthread_queue_work(vblank->worker, &work->base); in drm_vblank_work_schedule() 251 struct kthread_worker *worker; in drm_vblank_worker_init() local 255 worker = kthread_create_worker(0, "card%d-crtc%d", in drm_vblank_worker_init() 258 if (IS_ERR(worker)) in drm_vblank_worker_init() 259 return PTR_ERR(worker); in drm_vblank_worker_init() 261 vblank->worker = worker; in drm_vblank_worker_init() 263 sched_set_fifo(worker->task); in drm_vblank_worker_init()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/ |
H A D | drm_vblank_work.c | 60 kthread_queue_work(vblank->worker, &work->base); in drm_handle_vblank_works() 147 ret = kthread_queue_work(vblank->worker, &work->base); in drm_vblank_work_schedule() 251 struct kthread_worker *worker; in drm_vblank_worker_init() local 255 worker = kthread_create_worker(0, "card%d-crtc%d", in drm_vblank_worker_init() 258 if (IS_ERR(worker)) in drm_vblank_worker_init() 259 return PTR_ERR(worker); in drm_vblank_worker_init() 261 vblank->worker = worker; in drm_vblank_worker_init() 263 sched_set_fifo(worker->task); in drm_vblank_worker_init()
|
/kernel/linux/linux-6.6/drivers/vhost/ |
H A D | vhost.c | 236 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() 279 * vhost_worker_flush - flush a worker 280 * @worker 285 vhost_worker_flush(struct vhost_worker *worker) vhost_worker_flush() argument 298 struct vhost_worker *worker; vhost_dev_flush() local 316 struct vhost_worker *worker; vhost_vq_has_work() local 397 struct vhost_worker *worker = data; vhost_worker() local 591 vhost_worker_destroy(struct vhost_dev *dev, struct vhost_worker *worker) vhost_worker_destroy() argument 605 struct vhost_worker *worker; vhost_workers_free() local 624 struct vhost_worker *worker; vhost_worker_create() local 662 __vhost_vq_attach_worker(struct vhost_virtqueue *vq, struct vhost_worker *worker) __vhost_vq_attach_worker() argument 718 struct vhost_worker *worker; vhost_vq_attach_worker() local 735 struct vhost_worker *worker; vhost_new_worker() local 750 struct vhost_worker *worker; vhost_free_worker() local 794 struct vhost_worker *worker; vhost_worker_ioctl() local 867 struct vhost_worker *worker; vhost_dev_set_owner() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/msm/ |
H A D | msm_atomic.c | 118 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()
|