• Steven Rostedt (Red Hat)'s avatar
    rcu: Simplify RCU_STATE_INITIALIZER() macro · a41bfeb2
    Steven Rostedt (Red Hat) authored
    The RCU_STATE_INITIALIZER() macro is used only in the rcutree.c file
    as well as the rcutree_plugin.h file. It is passed as a rvalue to
    a variable of a similar name. A per_cpu variable is also created
    with a similar name as well.
    
    The uses of RCU_STATE_INITIALIZER() can be simplified to remove some
    of the duplicate code that is done. Currently the three users of this
    macro has this format:
    
    struct rcu_state rcu_sched_state =
    	RCU_STATE_INITIALIZER(rcu_sched, call_rcu_sched);
    DEFINE_PER_CPU(struct rcu_data, rcu_sched_data);
    
    Notice that "rcu_sched" is called three times. This is the same with
    the other two users. This can be condensed to just:
    
    RCU_STATE_INITIALIZER(rcu_sched, call_rcu_sched);
    
    by moving the rest into the macro itself.
    
    This also opens the door to allow the RCU tracepoint strings and
    their addresses to be exported so that userspace tracing tools can
    translate the contents of the pointers of the RCU tracepoints.
    The change will allow for helper code to be placed in the
    RCU_STATE_INITIALIZER() macro to export the name that is used.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    a41bfeb2
rcutree_plugin.h 68.4 KB