Merge branches 'doc.2015.01.07a', 'fixes.2015.01.15a', 'preempt.2015.01.06a', 'srcu...
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 16 Jan 2015 07:34:34 +0000 (23:34 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 16 Jan 2015 07:34:34 +0000 (23:34 -0800)
doc.2015.01.07a: Documentation updates.
fixes.2015.01.15a: Miscellaneous fixes.
preempt.2015.01.06a: Changes to handling of lists of preempted tasks.
srcu.2015.01.06a: SRCU updates.
stall.2015.01.16a: RCU CPU stall-warning updates and fixes.
torture.2015.01.11a: RCU torture-test updates and fixes.

1  2  3  4  5  6 
Documentation/RCU/stallwarn.txt
include/linux/rcupdate.h
include/linux/rcutiny.h
include/linux/rcutree.h
init/Kconfig
kernel/rcu/tiny.c
kernel/rcu/tiny_plugin.h
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_plugin.h
lib/Kconfig.debug

Simple merge
Simple merge
Simple merge
Simple merge
diff --cc init/Kconfig
Simple merge
Simple merge
@@@@@@@ -145,17 -145,17 -145,17 -145,17 -145,16 -145,17 +145,16 @@@@@@@ static void check_cpu_stall(struct rcu_
        rcp->ticks_this_gp++;
        j = jiffies;
        js = ACCESS_ONCE(rcp->jiffies_stall);
---- -  if (*rcp->curtail && ULONG_CMP_GE(j, js)) {
++++ +  if (rcp->rcucblist && ULONG_CMP_GE(j, js)) {
                pr_err("INFO: %s stall on CPU (%lu ticks this GP) idle=%llx (t=%lu jiffies q=%ld)\n",
- ----                 rcp->name, rcp->ticks_this_gp, rcu_dynticks_nesting,
+ ++++                 rcp->name, rcp->ticks_this_gp, DYNTICK_TASK_EXIT_IDLE,
                       jiffies - rcp->gp_start, rcp->qlen);
                dump_stack();
---- -  }
---- -  if (*rcp->curtail && ULONG_CMP_GE(j, js))
                ACCESS_ONCE(rcp->jiffies_stall) = jiffies +
                        3 * rcu_jiffies_till_stall_check() + 3;
---- -  else if (ULONG_CMP_GE(j, js))
++++ +  } else if (ULONG_CMP_GE(j, js)) {
                ACCESS_ONCE(rcp->jiffies_stall) = jiffies + rcu_jiffies_till_stall_check();
++++ +  }
      }
      
      static void reset_cpu_stall_ticks(struct rcu_ctrlblk *rcp)
@@@@@@@ -315,9 -315,9 -315,9 -315,9 -338,9 -315,45 +338,45 @@@@@@@ static void force_quiescent_state(struc
      static int rcu_pending(void);
      
      /*
-----  * Return the number of RCU-sched batches processed thus far for debug & stats.
+++++  * Return the number of RCU batches started thus far for debug & stats.
+ ++   */
 -  - long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_started(void)
+++++ {
+++++   return rcu_state_p->gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started);
+++++ 
+++++ /*
+++++  * Return the number of RCU-sched batches started thus far for debug & stats.
 ++ +  */
-  -  long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_started_sched(void)
+++++ {
+++++   return rcu_sched_state.gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started_sched);
+++++ 
+++++ /*
+++++  * Return the number of RCU BH batches started thus far for debug & stats.
+++++  */
+++++ unsigned long rcu_batches_started_bh(void)
+++++ {
+++++   return rcu_bh_state.gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started_bh);
+++++ 
+++++ /*
+++++  * Return the number of RCU batches completed thus far for debug & stats.
+++++  */
+++++ unsigned long rcu_batches_completed(void)
+++++ {
+++++   return rcu_state_p->completed;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_completed);
+++++ 
+++++ /*
+++++  * Return the number of RCU-sched batches completed thus far for debug & stats.
++ ++  */
  -   long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_completed_sched(void)
      {
        return rcu_sched_state.completed;
      }
Simple merge
Simple merge
Simple merge