lkml.org 
[lkml]   [2012]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH tip/core/rcu 12/15] rcu: Remove unneeded __rcu_process_callbacks() argument
    On Fri, Jun 15, 2012 at 02:06:07PM -0700, Paul E. McKenney wrote:
    > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    >
    > With the advent of __this_cpu_ptr(), it is no longer necessary to pass
    > both the rcu_state and rcu_data structures into __rcu_process_callbacks().
    > This commit therefore computes the rcu_data pointer from the rcu_state
    > pointer within __rcu_process_callbacks() so that callers can pass in
    > only the pointer to the rcu_state structure. This paves the way for
    > linking the rcu_state structures together and iterating over them.
    >
    > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

    Reviewed-by: Josh Triplett <josh@joshtriplett.org>

    > kernel/rcutree.c | 8 ++++----
    > kernel/rcutree_plugin.h | 3 +--
    > 2 files changed, 5 insertions(+), 6 deletions(-)
    >
    > diff --git a/kernel/rcutree.c b/kernel/rcutree.c
    > index ebd5223..bd4e41c 100644
    > --- a/kernel/rcutree.c
    > +++ b/kernel/rcutree.c
    > @@ -1785,9 +1785,10 @@ unlock_fqs_ret:
    > * whom the rdp belongs.
    > */
    > static void
    > -__rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
    > +__rcu_process_callbacks(struct rcu_state *rsp)
    > {
    > unsigned long flags;
    > + struct rcu_data *rdp = __this_cpu_ptr(rsp->rda);
    >
    > WARN_ON_ONCE(rdp->beenonline == 0);
    >
    > @@ -1824,9 +1825,8 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
    > static void rcu_process_callbacks(struct softirq_action *unused)
    > {
    > trace_rcu_utilization("Start RCU core");
    > - __rcu_process_callbacks(&rcu_sched_state,
    > - &__get_cpu_var(rcu_sched_data));
    > - __rcu_process_callbacks(&rcu_bh_state, &__get_cpu_var(rcu_bh_data));
    > + __rcu_process_callbacks(&rcu_sched_state);
    > + __rcu_process_callbacks(&rcu_bh_state);
    > rcu_preempt_process_callbacks();
    > trace_rcu_utilization("End RCU core");
    > }
    > diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
    > index 6888706..686cb55 100644
    > --- a/kernel/rcutree_plugin.h
    > +++ b/kernel/rcutree_plugin.h
    > @@ -687,8 +687,7 @@ static void rcu_preempt_check_callbacks(int cpu)
    > */
    > static void rcu_preempt_process_callbacks(void)
    > {
    > - __rcu_process_callbacks(&rcu_preempt_state,
    > - &__get_cpu_var(rcu_preempt_data));
    > + __rcu_process_callbacks(&rcu_preempt_state);
    > }
    >
    > #ifdef CONFIG_RCU_BOOST
    > --
    > 1.7.8
    >


    \
     
     \ /
      Last update: 2012-06-16 02:21    [W:0.028 / U:6.264 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site