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()
341 static int kthread(void *_create) in kthread() function
349 struct kthread *self; in kthread()
412 pid = kernel_thread(kthread, create, create->full_name, in create_kthread()
590 struct kthread *kthread = to_kthread(k); in kthread_set_per_cpu() local
591 if (!kthread) in kthread_set_per_cpu()
597 clear_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_set_per_cpu()
601 kthread->cpu = cpu; in kthread_set_per_cpu()
602 set_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_set_per_cpu()
607 struct kthread *kthread = __to_kthread(p); in kthread_is_per_cpu() local
608 if (!kthread) in kthread_is_per_cpu()
611 return test_bit(KTHREAD_IS_PER_CPU, &kthread->flags); in kthread_is_per_cpu()
624 struct kthread *kthread = to_kthread(k); in kthread_unpark() local
626 if (!test_bit(KTHREAD_SHOULD_PARK, &kthread->flags)) in kthread_unpark()
632 if (test_bit(KTHREAD_IS_PER_CPU, &kthread->flags)) in kthread_unpark()
633 __kthread_bind(k, kthread->cpu, TASK_PARKED); in kthread_unpark()
635 clear_bit(KTHREAD_SHOULD_PARK, &kthread->flags); in kthread_unpark()
657 struct kthread *kthread = to_kthread(k); in kthread_park() local
662 if (WARN_ON_ONCE(test_bit(KTHREAD_SHOULD_PARK, &kthread->flags))) in kthread_park()
665 set_bit(KTHREAD_SHOULD_PARK, &kthread->flags); in kthread_park()
672 wait_for_completion(&kthread->parked); in kthread_park()
701 struct kthread *kthread; in kthread_stop() local
707 kthread = to_kthread(k); in kthread_stop()
708 set_bit(KTHREAD_SHOULD_STOP, &kthread->flags); in kthread_stop()
712 wait_for_completion(&kthread->exited); in kthread_stop()
713 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()