Lines Matching refs:kthread
53 struct kthread { struct
74 static inline struct kthread *to_kthread(struct task_struct *k) in to_kthread() argument
91 static inline struct kthread *__to_kthread(struct task_struct *p) in __to_kthread()
93 void *kthread = p->worker_private; in __to_kthread() local
94 if (kthread && !(p->flags & PF_KTHREAD)) in __to_kthread()
95 kthread = NULL; in __to_kthread()
96 return kthread; in __to_kthread()
101 struct kthread *kthread = to_kthread(tsk); in get_kthread_comm() local
103 if (!kthread || !kthread->full_name) { in get_kthread_comm()
108 strscpy_pad(buf, kthread->full_name, buf_size); in get_kthread_comm()
113 struct kthread *kthread; in set_kthread_struct() local
118 kthread = kzalloc(sizeof(*kthread), GFP_KERNEL); in set_kthread_struct()
119 if (!kthread) in set_kthread_struct()
122 init_completion(&kthread->exited); in set_kthread_struct()
123 init_completion(&kthread->parked); in set_kthread_struct()
124 p->vfork_done = &kthread->exited; in set_kthread_struct()
126 p->worker_private = kthread; in set_kthread_struct()
132 struct kthread *kthread; in free_kthread_struct() local
137 kthread = to_kthread(k); in free_kthread_struct()
138 if (!kthread) in free_kthread_struct()
142 WARN_ON_ONCE(kthread->blkcg_css); in free_kthread_struct()
145 kfree(kthread->full_name); in free_kthread_struct()
146 kfree(kthread); in free_kthread_struct()
186 struct kthread *kthread = __to_kthread(current); in kthread_should_stop_or_park() local
188 if (!kthread) in kthread_should_stop_or_park()
191 return kthread->flags & (BIT(KTHREAD_SHOULD_STOP) | BIT(KTHREAD_SHOULD_PARK)); in kthread_should_stop_or_park()
227 struct kthread *kthread = __to_kthread(task); in kthread_func() local
228 if (kthread) in kthread_func()
229 return kthread->threadfn; in kthread_func()
259 struct kthread *kthread = __to_kthread(task); in kthread_probe_data() local
262 if (kthread) in kthread_probe_data()
263 copy_from_kernel_nofault(&data, &kthread->data, sizeof(data)); in kthread_probe_data()
267 static void __kthread_parkme(struct kthread *self) in __kthread_parkme()
314 struct kthread *kthread = to_kthread(current); in kthread_exit() local
315 kthread->result = result; in kthread_exit()
340 static int kthread(void *_create) in kthread() function
348 struct kthread *self; in kthread()
411 pid = kernel_thread(kthread, create, create->full_name, in create_kthread()
589 struct kthread *kthread = to_kthread(k); in kthread_set_per_cpu() local
590 if (!kthread) in kthread_set_per_cpu()
596 clear_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_set_per_cpu()
600 kthread->cpu = cpu; in kthread_set_per_cpu()
601 set_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_set_per_cpu()
606 struct kthread *kthread = __to_kthread(p); in kthread_is_per_cpu() local
607 if (!kthread) in kthread_is_per_cpu()
610 return test_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_is_per_cpu()
623 struct kthread *kthread = to_kthread(k); in kthread_unpark() local
625 if (!test_bit(KTHREAD_SHOULD_PARK, &kthread->flags)) in kthread_unpark()
631 if (test_bit(KTHREAD_IS_PER_CPU, &kthread->flags)) in kthread_unpark()
632 __kthread_bind(k, kthread->cpu, TASK_PARKED); in kthread_unpark()
634 clear_bit(KTHREAD_SHOULD_PARK, &kthread->flags); in kthread_unpark()
656 struct kthread *kthread = to_kthread(k); in kthread_park() local
661 if (WARN_ON_ONCE(test_bit(KTHREAD_SHOULD_PARK, &kthread->flags))) in kthread_park()
664 set_bit(KTHREAD_SHOULD_PARK, &kthread->flags); in kthread_park()
671 wait_for_completion(&kthread->parked); in kthread_park()
700 struct kthread *kthread; in kthread_stop() local
706 kthread = to_kthread(k); in kthread_stop()
707 set_bit(KTHREAD_SHOULD_STOP, &kthread->flags); in kthread_stop()
711 wait_for_completion(&kthread->exited); in kthread_stop()
712 ret = kthread->result; in kthread_stop()
1527 struct kthread *kthread; in kthread_associate_blkcg() local
1531 kthread = to_kthread(current); in kthread_associate_blkcg()
1532 if (!kthread) in kthread_associate_blkcg()
1535 if (kthread->blkcg_css) { in kthread_associate_blkcg()
1536 css_put(kthread->blkcg_css); in kthread_associate_blkcg()
1537 kthread->blkcg_css = NULL; in kthread_associate_blkcg()
1541 kthread->blkcg_css = css; in kthread_associate_blkcg()
1553 struct kthread *kthread; in kthread_blkcg() local
1556 kthread = to_kthread(current); in kthread_blkcg()
1557 if (kthread) in kthread_blkcg()
1558 return kthread->blkcg_css; in kthread_blkcg()