lkml.org 
[lkml]   [2011]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH -tip] rcu: use kthread_create_on_node()
    On Thu, May 19, 2011 at 10:32:45AM +0200, Eric Dumazet wrote:
    > Commit a26ac2455ffc (move TREE_RCU from softirq to kthread) added
    > creation of per cpu kthreads.
    >
    > Use kthread_create_on_node() NUMA friendly function, to let these
    > threads use local node for their stack/task struct.
    >
    > We did a similar change in commit 94dcf29a11b3 (kthread: use
    > kthread_create_on_node())
    >
    > Also change rcu torture kthread creation.

    Queued, thank you, Eric!

    Thanx, Paul

    > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    > CC: Tejun Heo <tj@kernel.org>
    > CC: Rusty Russell <rusty@rustcorp.com.au>
    > CC: Andrew Morton <akpm@linux-foundation.org>
    > CC: Andi Kleen <ak@linux.intel.com>
    > CC: Ingo Molnar <mingo@elte.hu>
    > ---
    > kernel/rcutorture.c | 3 ++-
    > kernel/rcutree.c | 5 ++++-
    > 2 files changed, 6 insertions(+), 2 deletions(-)
    >
    > diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
    > index 2e138db..40d9ed2 100644
    > --- a/kernel/rcutorture.c
    > +++ b/kernel/rcutorture.c
    > @@ -1282,7 +1282,8 @@ static int rcutorture_booster_init(int cpu)
    > /* Don't allow time recalculation while creating a new task. */
    > mutex_lock(&boost_mutex);
    > VERBOSE_PRINTK_STRING("Creating rcu_torture_boost task");
    > - boost_tasks[cpu] = kthread_create(rcu_torture_boost, NULL,
    > + boost_tasks[cpu] = kthread_create_on_node(rcu_torture_boost, NULL,
    > + cpu_to_node(cpu),
    > "rcu_torture_boost");
    > if (IS_ERR(boost_tasks[cpu])) {
    > retval = PTR_ERR(boost_tasks[cpu]);
    > diff --git a/kernel/rcutree.c b/kernel/rcutree.c
    > index 5616b17..b013915 100644
    > --- a/kernel/rcutree.c
    > +++ b/kernel/rcutree.c
    > @@ -1649,7 +1649,10 @@ static int __cpuinit rcu_spawn_one_cpu_kthread(int cpu)
    > if (!rcu_kthreads_spawnable ||
    > per_cpu(rcu_cpu_kthread_task, cpu) != NULL)
    > return 0;
    > - t = kthread_create(rcu_cpu_kthread, (void *)(long)cpu, "rcuc%d", cpu);
    > + t = kthread_create_on_node(rcu_cpu_kthread,
    > + (void *)(long)cpu,
    > + cpu_to_node(cpu),
    > + "rcuc%d", cpu);
    > if (IS_ERR(t))
    > return PTR_ERR(t);
    > kthread_bind(t, cpu);
    >
    >


    \
     
     \ /
      Last update: 2011-05-21 01:25    [W:3.022 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site