mirror of
https://github.com/adulau/aha.git
synced 2024-12-26 18:56:14 +00:00
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>
This commit is contained in:
parent
5da9a0fb67
commit
881232b70b
2 changed files with 23 additions and 26 deletions
|
@ -149,6 +149,29 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(kthread_create);
|
EXPORT_SYMBOL(kthread_create);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kthread_bind - bind a just-created kthread to a cpu.
|
||||||
|
* @p: thread created by kthread_create().
|
||||||
|
* @cpu: cpu (might not be online, must be possible) for @k to run on.
|
||||||
|
*
|
||||||
|
* Description: This function is equivalent to set_cpus_allowed(),
|
||||||
|
* except that @cpu doesn't need to be online, and the thread must be
|
||||||
|
* stopped (i.e., just returned from kthread_create()).
|
||||||
|
*/
|
||||||
|
void kthread_bind(struct task_struct *p, unsigned int cpu)
|
||||||
|
{
|
||||||
|
/* Must have done schedule() in kthread() before we set_task_cpu */
|
||||||
|
if (!wait_task_inactive(p, TASK_UNINTERRUPTIBLE)) {
|
||||||
|
WARN_ON(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
p->cpus_allowed = cpumask_of_cpu(cpu);
|
||||||
|
p->rt.nr_cpus_allowed = 1;
|
||||||
|
p->flags |= PF_THREAD_BOUND;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(kthread_bind);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* kthread_stop - stop a thread created by kthread_create().
|
* kthread_stop - stop a thread created by kthread_create().
|
||||||
* @k: thread created by kthread_create().
|
* @k: thread created by kthread_create().
|
||||||
|
|
|
@ -2004,32 +2004,6 @@ static inline void check_class_changed(struct rq *rq, struct task_struct *p,
|
||||||
p->sched_class->prio_changed(rq, p, oldprio, running);
|
p->sched_class->prio_changed(rq, p, oldprio, running);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* kthread_bind - bind a just-created kthread to a cpu.
|
|
||||||
* @p: thread created by kthread_create().
|
|
||||||
* @cpu: cpu (might not be online, must be possible) for @k to run on.
|
|
||||||
*
|
|
||||||
* Description: This function is equivalent to set_cpus_allowed(),
|
|
||||||
* except that @cpu doesn't need to be online, and the thread must be
|
|
||||||
* stopped (i.e., just returned from kthread_create()).
|
|
||||||
*
|
|
||||||
* Function lives here instead of kthread.c because it messes with
|
|
||||||
* scheduler internals which require locking.
|
|
||||||
*/
|
|
||||||
void kthread_bind(struct task_struct *p, unsigned int cpu)
|
|
||||||
{
|
|
||||||
/* Must have done schedule() in kthread() before we set_task_cpu */
|
|
||||||
if (!wait_task_inactive(p, TASK_UNINTERRUPTIBLE)) {
|
|
||||||
WARN_ON(1);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
p->cpus_allowed = cpumask_of_cpu(cpu);
|
|
||||||
p->rt.nr_cpus_allowed = 1;
|
|
||||||
p->flags |= PF_THREAD_BOUND;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(kthread_bind);
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/*
|
/*
|
||||||
* Is this task likely cache-hot:
|
* Is this task likely cache-hot:
|
||||||
|
|
Loading…
Reference in a new issue