diff options
| author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-12-16 12:04:39 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-12-16 13:01:57 -0500 |
| commit | 881232b70b195768a71cd74ff4b4e8ab9502997b (patch) | |
| tree | aeafe0a28a7163af445e4f603ab1075c3608c375 /kernel | |
| parent | 5da9a0fb673a0ea0a093862f95f6b89b3390c31e (diff) | |
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>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kthread.c | 23 | ||||
| -rw-r--r-- | kernel/sched.c | 26 |
2 files changed, 23 insertions, 26 deletions
diff --git a/kernel/kthread.c b/kernel/kthread.c index ab7ae57773e1..fbb6222fe7e0 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c | |||
| @@ -150,6 +150,29 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), | |||
| 150 | EXPORT_SYMBOL(kthread_create); | 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 | * kthread_stop - stop a thread created by kthread_create(). | 176 | * kthread_stop - stop a thread created by kthread_create(). |
| 154 | * @k: thread created by kthread_create(). | 177 | * @k: thread created by kthread_create(). |
| 155 | * | 178 | * |
diff --git a/kernel/sched.c b/kernel/sched.c index cc40bdadee7a..297dc441ff96 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -2004,32 +2004,6 @@ static inline void check_class_changed(struct rq *rq, struct task_struct *p, | |||
| 2004 | p->sched_class->prio_changed(rq, p, oldprio, running); | 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 | #ifdef CONFIG_SMP | 2007 | #ifdef CONFIG_SMP |
| 2034 | /* | 2008 | /* |
| 2035 | * Is this task likely cache-hot: | 2009 | * Is this task likely cache-hot: |
