Lines Matching refs:cpu

28 struct task_struct *idle_thread_get(unsigned int cpu)  in idle_thread_get()  argument
30 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_thread_get()
48 static __always_inline void idle_init(unsigned int cpu) in idle_init() argument
50 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_init()
53 tsk = fork_idle(cpu); in idle_init()
55 pr_err("SMP: fork_idle() failed for CPU %u\n", cpu); in idle_init()
57 per_cpu(idle_threads, cpu) = tsk; in idle_init()
66 unsigned int cpu, boot_cpu; in idle_threads_init() local
70 for_each_possible_cpu(cpu) { in idle_threads_init()
71 if (cpu != boot_cpu) in idle_threads_init()
72 idle_init(cpu); in idle_threads_init()
81 unsigned int cpu; member
115 ht->cleanup(td->cpu, cpu_online(td->cpu)); in smpboot_thread_fn()
124 BUG_ON(td->cpu != smp_processor_id()); in smpboot_thread_fn()
125 ht->park(td->cpu); in smpboot_thread_fn()
133 BUG_ON(td->cpu != smp_processor_id()); in smpboot_thread_fn()
141 ht->setup(td->cpu); in smpboot_thread_fn()
149 ht->unpark(td->cpu); in smpboot_thread_fn()
154 if (!ht->thread_should_run(td->cpu)) { in smpboot_thread_fn()
160 ht->thread_fn(td->cpu); in smpboot_thread_fn()
166 __smpboot_create_thread(struct smp_hotplug_thread *ht, unsigned int cpu) in __smpboot_create_thread() argument
168 struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu); in __smpboot_create_thread()
174 td = kzalloc_node(sizeof(*td), GFP_KERNEL, cpu_to_node(cpu)); in __smpboot_create_thread()
177 td->cpu = cpu; in __smpboot_create_thread()
180 tsk = kthread_create_on_cpu(smpboot_thread_fn, td, cpu, in __smpboot_create_thread()
186 kthread_set_per_cpu(tsk, cpu); in __smpboot_create_thread()
193 *per_cpu_ptr(ht->store, cpu) = tsk; in __smpboot_create_thread()
204 ht->create(cpu); in __smpboot_create_thread()
209 int smpboot_create_threads(unsigned int cpu) in smpboot_create_threads() argument
216 ret = __smpboot_create_thread(cur, cpu); in smpboot_create_threads()
224 static void smpboot_unpark_thread(struct smp_hotplug_thread *ht, unsigned int cpu) in smpboot_unpark_thread() argument
226 struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu); in smpboot_unpark_thread()
232 int smpboot_unpark_threads(unsigned int cpu) in smpboot_unpark_threads() argument
238 smpboot_unpark_thread(cur, cpu); in smpboot_unpark_threads()
243 static void smpboot_park_thread(struct smp_hotplug_thread *ht, unsigned int cpu) in smpboot_park_thread() argument
245 struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu); in smpboot_park_thread()
251 int smpboot_park_threads(unsigned int cpu) in smpboot_park_threads() argument
257 smpboot_park_thread(cur, cpu); in smpboot_park_threads()
264 unsigned int cpu; in smpboot_destroy_threads() local
267 for_each_possible_cpu(cpu) { in smpboot_destroy_threads()
268 struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu); in smpboot_destroy_threads()
272 *per_cpu_ptr(ht->store, cpu) = NULL; in smpboot_destroy_threads()
286 unsigned int cpu; in smpboot_register_percpu_thread() local
291 for_each_online_cpu(cpu) { in smpboot_register_percpu_thread()
292 ret = __smpboot_create_thread(plug_thread, cpu); in smpboot_register_percpu_thread()
297 smpboot_unpark_thread(plug_thread, cpu); in smpboot_register_percpu_thread()