Lines Matching refs:rescuer
350 struct worker *rescuer; /* MD: rescue worker */ member
2986 if (!wq->rescuer) in send_mayday()
2998 wake_up_process(wq->rescuer->task); in send_mayday()
3440 static bool assign_rescuer_work(struct pool_workqueue *pwq, struct worker *rescuer) in assign_rescuer_work() argument
3454 if (get_work_pwq(work) == pwq && assign_work(work, rescuer, &n)) in assign_rescuer_work()
3458 return !list_empty(&rescuer->scheduled); in assign_rescuer_work()
3484 struct worker *rescuer = __rescuer; in rescuer_thread() local
3485 struct workqueue_struct *wq = rescuer->rescue_wq; in rescuer_thread()
3521 worker_attach_to_pool(rescuer, pool); in rescuer_thread()
3525 WARN_ON_ONCE(!list_empty(&rescuer->scheduled)); in rescuer_thread()
3527 if (assign_rescuer_work(pwq, rescuer)) { in rescuer_thread()
3528 process_scheduled_works(rescuer); in rescuer_thread()
3560 worker_detach_from_pool(rescuer); in rescuer_thread()
3580 WARN_ON_ONCE(!(rescuer->flags & WORKER_NOT_RUNNING)); in rescuer_thread()
4220 if (!from_cancel && (wq->saved_max_active == 1 || wq->rescuer)) in start_flush_work()
5587 struct worker *rescuer; in init_rescuer() local
5596 rescuer = alloc_worker(NUMA_NO_NODE); in init_rescuer()
5597 if (!rescuer) { in init_rescuer()
5603 rescuer->rescue_wq = wq; in init_rescuer()
5604 format_worker_id(id_buf, sizeof(id_buf), rescuer, NULL); in init_rescuer()
5606 rescuer->task = kthread_create(rescuer_thread, rescuer, "%s", id_buf); in init_rescuer()
5607 if (IS_ERR(rescuer->task)) { in init_rescuer()
5608 ret = PTR_ERR(rescuer->task); in init_rescuer()
5611 kfree(rescuer); in init_rescuer()
5615 wq->rescuer = rescuer; in init_rescuer()
5619 kthread_bind_mask(rescuer->task, wq_unbound_cpumask); in init_rescuer()
5621 kthread_bind_mask(rescuer->task, cpu_possible_mask); in init_rescuer()
5623 wake_up_process(rescuer->task); in init_rescuer()
5906 if (wq->rescuer) { in destroy_workqueue()
5908 kthread_stop(wq->rescuer->task); in destroy_workqueue()
5909 kfree(wq->rescuer); in destroy_workqueue()
5910 wq->rescuer = NULL; in destroy_workqueue()
6944 if (wq->rescuer && !wq->rescuer->pool) in workqueue_apply_unbound_cpumask()
6945 unbind_worker(wq->rescuer); in workqueue_apply_unbound_cpumask()