Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a'...
authorPaul E. McKenney <paulmck@linux.ibm.com>
Wed, 19 Jun 2019 16:21:46 +0000 (09:21 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Wed, 19 Jun 2019 16:21:46 +0000 (09:21 -0700)
consolidate.2019.05.28a: RCU flavor consolidation cleanups and optmizations.
doc.2019.05.28a: Documentation updates.
fixes.2019.06.13a: Miscellaneous fixes.
srcu.2019.05.28a: SRCU updates.
sync.2019.05.28a: RCU-sync flavor consolidation.
torture.2019.05.28a: Torture-test updates.

1  2  3  4  5  6 
kernel/rcu/tree.c
kernel/rcu/tree_exp.h
kernel/rcu/tree_plugin.h

index b9629cf08f9462601a8c8a47cade8b995c019f5d,980ca3ca643fbf09c35b4e1b7810d196be511f23,f888a76673da08702da3d45ce5a4d15fe60c6f31,980ca3ca643fbf09c35b4e1b7810d196be511f23,980ca3ca643fbf09c35b4e1b7810d196be511f23,980ca3ca643fbf09c35b4e1b7810d196be511f23..a14e5fbbea467ecd6cbadd390f5382bd320b07f3
@@@@@@@ -384,24 -376,11 -376,12 -376,11 -376,11 -376,11 +384,25 @@@@@@@ static void __maybe_unused rcu_momentar
       */
      static int rcu_is_cpu_rrupt_from_idle(void)
      {
 -----  return __this_cpu_read(rcu_data.dynticks_nesting) <= 0 &&
 -----         __this_cpu_read(rcu_data.dynticks_nmi_nesting) <= 1;
 +++++  /* Called only from within the scheduling-clock interrupt */
 +++++  lockdep_assert_in_irq();
 +++++
 +++++  /* Check for counter underflows */
 +++++  RCU_LOCKDEP_WARN(__this_cpu_read(rcu_data.dynticks_nesting) < 0,
 +++++                   "RCU dynticks_nesting counter underflow!");
 +++++  RCU_LOCKDEP_WARN(__this_cpu_read(rcu_data.dynticks_nmi_nesting) <= 0,
 +++++                   "RCU dynticks_nmi_nesting counter underflow/zero!");
 +++++
 +++++  /* Are we at first interrupt nesting level? */
 +++++  if (__this_cpu_read(rcu_data.dynticks_nmi_nesting) != 1)
 +++++          return false;
 +++++
 +++++  /* Does CPU appear to be idle from an RCU standpoint? */
 +++++  return __this_cpu_read(rcu_data.dynticks_nesting) == 0;
      }
      
-- ---#define DEFAULT_RCU_BLIMIT 10     /* Maximum callbacks per rcu_do_batch. */
++ +++#define DEFAULT_RCU_BLIMIT 10     /* Maximum callbacks per rcu_do_batch ... */
++ +++#define DEFAULT_MAX_RCU_BLIMIT 10000 /* ... even during callback flood. */
      static long blimit = DEFAULT_RCU_BLIMIT;
      #define DEFAULT_RCU_QHIMARK 10000 /* If this many pending, ignore blimit. */
      static long qhimark = DEFAULT_RCU_QHIMARK;
Simple merge
Simple merge