lkml.org 
[lkml]   [2009]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:sched/urgent] sched: Move kthread_bind() back to kthread.c
    Commit-ID:  881232b70b195768a71cd74ff4b4e8ab9502997b
    Gitweb: http://git.kernel.org/tip/881232b70b195768a71cd74ff4b4e8ab9502997b
    Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
    AuthorDate: Wed, 16 Dec 2009 18:04:39 +0100
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Wed, 16 Dec 2009 19:01:57 +0100

    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>
    ---
    kernel/kthread.c | 23 +++++++++++++++++++++++
    kernel/sched.c | 26 --------------------------
    2 files changed, 23 insertions(+), 26 deletions(-)

    diff --git a/kernel/kthread.c b/kernel/kthread.c
    index ab7ae57..fbb6222 100644
    --- a/kernel/kthread.c
    +++ b/kernel/kthread.c
    @@ -150,6 +150,29 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
    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().
    * @k: thread created by kthread_create().
    *
    diff --git a/kernel/sched.c b/kernel/sched.c
    index cc40bda..297dc44 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,
    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
    /*
    * Is this task likely cache-hot:

    \
     
     \ /
      Last update: 2009-12-16 19:43    [W:3.545 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site