lkml.org 
[lkml]   [2018]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 36/52] rcu: Remove rsp parameter from rcu_spawn_one_boost_kthread()
    Date
    There now is only one rcu_state structure in a given build of the
    Linux kernel, so there is no need to pass it as a parameter to RCU's
    functions. This commit therefore removes the rsp parameter from
    rcu_spawn_one_boost_kthread().

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    kernel/rcu/tree.h | 4 ----
    kernel/rcu/tree_plugin.h | 13 ++++++-------
    2 files changed, 6 insertions(+), 11 deletions(-)

    diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
    index ccdee6bd3919..dc1c337f6da9 100644
    --- a/kernel/rcu/tree.h
    +++ b/kernel/rcu/tree.h
    @@ -463,10 +463,6 @@ static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
    static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
    static void invoke_rcu_callbacks_kthread(void);
    static bool rcu_is_callbacks_kthread(void);
    -#ifdef CONFIG_RCU_BOOST
    -static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
    - struct rcu_node *rnp);
    -#endif /* #ifdef CONFIG_RCU_BOOST */
    static void __init rcu_spawn_boost_kthreads(void);
    static void rcu_prepare_kthreads(int cpu);
    static void rcu_cleanup_after_idle(void);
    diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
    index 9a3d30121815..9a6dea5fab86 100644
    --- a/kernel/rcu/tree_plugin.h
    +++ b/kernel/rcu/tree_plugin.h
    @@ -1290,21 +1290,20 @@ static void rcu_preempt_boost_start_gp(struct rcu_node *rnp)
    * already exist. We only create this kthread for preemptible RCU.
    * Returns zero if all is well, a negated errno otherwise.
    */
    -static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
    - struct rcu_node *rnp)
    +static int rcu_spawn_one_boost_kthread(struct rcu_node *rnp)
    {
    - int rnp_index = rnp - &rsp->node[0];
    + int rnp_index = rnp - rcu_get_root();
    unsigned long flags;
    struct sched_param sp;
    struct task_struct *t;

    - if (&rcu_state != rsp)
    + if (!IS_ENABLED(CONFIG_PREEMPT_RCU))
    return 0;

    if (!rcu_scheduler_fully_active || rcu_rnp_online_cpus(rnp) == 0)
    return 0;

    - rsp->boost = 1;
    + rcu_state.boost = 1;
    if (rnp->boost_kthread_task != NULL)
    return 0;
    t = kthread_create(rcu_boost_kthread, (void *)rnp,
    @@ -1430,7 +1429,7 @@ static void __init rcu_spawn_boost_kthreads(void)
    per_cpu(rcu_cpu_has_work, cpu) = 0;
    BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec));
    rcu_for_each_leaf_node(&rcu_state, rnp)
    - (void)rcu_spawn_one_boost_kthread(&rcu_state, rnp);
    + (void)rcu_spawn_one_boost_kthread(rnp);
    }

    static void rcu_prepare_kthreads(int cpu)
    @@ -1440,7 +1439,7 @@ static void rcu_prepare_kthreads(int cpu)

    /* Fire up the incoming CPU's kthread and leaf rcu_node kthread. */
    if (rcu_scheduler_fully_active)
    - (void)rcu_spawn_one_boost_kthread(&rcu_state, rnp);
    + (void)rcu_spawn_one_boost_kthread(rnp);
    }

    #else /* #ifdef CONFIG_RCU_BOOST */
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-08-30 00:40    [W:4.240 / U:1.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site