Commit 881232b70b195768a71cd74ff4b4e8ab9502997b
Committed by
Ingo Molnar
1 parent
5da9a0fb67
Exists in
master
and in
39 other branches
sched: Move kthread_bind() back to kthread.c
Since kthread_bind() lost its dependencies on sched.c, move it back where it came from. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> LKML-Reference: <20091216170518.039524041@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 2 changed files with 23 additions and 26 deletions Side-by-side Diff
kernel/kthread.c
... | ... | @@ -150,6 +150,29 @@ |
150 | 150 | EXPORT_SYMBOL(kthread_create); |
151 | 151 | |
152 | 152 | /** |
153 | + * kthread_bind - bind a just-created kthread to a cpu. | |
154 | + * @p: thread created by kthread_create(). | |
155 | + * @cpu: cpu (might not be online, must be possible) for @k to run on. | |
156 | + * | |
157 | + * Description: This function is equivalent to set_cpus_allowed(), | |
158 | + * except that @cpu doesn't need to be online, and the thread must be | |
159 | + * stopped (i.e., just returned from kthread_create()). | |
160 | + */ | |
161 | +void kthread_bind(struct task_struct *p, unsigned int cpu) | |
162 | +{ | |
163 | + /* Must have done schedule() in kthread() before we set_task_cpu */ | |
164 | + if (!wait_task_inactive(p, TASK_UNINTERRUPTIBLE)) { | |
165 | + WARN_ON(1); | |
166 | + return; | |
167 | + } | |
168 | + | |
169 | + p->cpus_allowed = cpumask_of_cpu(cpu); | |
170 | + p->rt.nr_cpus_allowed = 1; | |
171 | + p->flags |= PF_THREAD_BOUND; | |
172 | +} | |
173 | +EXPORT_SYMBOL(kthread_bind); | |
174 | + | |
175 | +/** | |
153 | 176 | * kthread_stop - stop a thread created by kthread_create(). |
154 | 177 | * @k: thread created by kthread_create(). |
155 | 178 | * |
kernel/sched.c
... | ... | @@ -2004,32 +2004,6 @@ |
2004 | 2004 | p->sched_class->prio_changed(rq, p, oldprio, running); |
2005 | 2005 | } |
2006 | 2006 | |
2007 | -/** | |
2008 | - * kthread_bind - bind a just-created kthread to a cpu. | |
2009 | - * @p: thread created by kthread_create(). | |
2010 | - * @cpu: cpu (might not be online, must be possible) for @k to run on. | |
2011 | - * | |
2012 | - * Description: This function is equivalent to set_cpus_allowed(), | |
2013 | - * except that @cpu doesn't need to be online, and the thread must be | |
2014 | - * stopped (i.e., just returned from kthread_create()). | |
2015 | - * | |
2016 | - * Function lives here instead of kthread.c because it messes with | |
2017 | - * scheduler internals which require locking. | |
2018 | - */ | |
2019 | -void kthread_bind(struct task_struct *p, unsigned int cpu) | |
2020 | -{ | |
2021 | - /* Must have done schedule() in kthread() before we set_task_cpu */ | |
2022 | - if (!wait_task_inactive(p, TASK_UNINTERRUPTIBLE)) { | |
2023 | - WARN_ON(1); | |
2024 | - return; | |
2025 | - } | |
2026 | - | |
2027 | - p->cpus_allowed = cpumask_of_cpu(cpu); | |
2028 | - p->rt.nr_cpus_allowed = 1; | |
2029 | - p->flags |= PF_THREAD_BOUND; | |
2030 | -} | |
2031 | -EXPORT_SYMBOL(kthread_bind); | |
2032 | - | |
2033 | 2007 | #ifdef CONFIG_SMP |
2034 | 2008 | /* |
2035 | 2009 | * Is this task likely cache-hot: |