Merge branches 'fixes.2015.10.06a' and 'exp.2015.10.07a' into HEAD
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 7 Oct 2015 23:05:21 +0000 (16:05 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 7 Oct 2015 23:05:21 +0000 (16:05 -0700)
exp.2015.10.07a:  Reduce OS jitter of RCU-sched expedited grace periods.
fixes.2015.10.06a:  Miscellaneous fixes.

1  2 
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_plugin.h
kernel/rcu/tree_trace.c

Simple merge
index 674ebbc3e406ec1d35ca1bc0b14eee387734cac4,191aa36785757d94d3354a300a63c163ad454f97..9fb4e238d4dcaaed1565dd7bf08a3c71a7f518bf
@@@ -457,7 -469,9 +462,8 @@@ struct rcu_state 
                                                /*  shut bogus gcc warning) */
        u8 flavor_mask;                         /* bit in flavor mask. */
        struct rcu_data __percpu *rda;          /* pointer of percu rcu_data. */
 -      void (*call)(struct rcu_head *head,     /* call_rcu() flavor. */
 -                   void (*func)(struct rcu_head *head));
 +      call_rcu_func_t call;                   /* call_rcu() flavor. */
+       int ncpus;                              /* # CPUs seen so far. */
  
        /* The following fields are guarded by the root rcu_node's lock. */
  
@@@ -573,9 -589,10 +580,10 @@@ static bool rcu_preempt_has_tasks(struc
  #endif /* #ifdef CONFIG_HOTPLUG_CPU */
  static void rcu_print_detail_task_stall(struct rcu_state *rsp);
  static int rcu_print_task_stall(struct rcu_node *rnp);
+ static int rcu_print_task_exp_stall(struct rcu_node *rnp);
  static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp);
  static void rcu_preempt_check_callbacks(void);
 -void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu));
 +void call_rcu(struct rcu_head *head, rcu_callback_t func);
  static void __init __rcu_init_preempt(void);
  static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
  static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
Simple merge
Simple merge