• Linus Torvalds's avatar
    Merge tag 'rcu.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 1fab45ab
    Linus Torvalds authored
    Pull RCU updates from Paul McKenney:
    
     - Documentation updates. This is the second in a series from an ongoing
       review of the RCU documentation.
    
     - Miscellaneous fixes.
    
     - Introduce a default-off Kconfig option that depends on RCU_NOCB_CPU
       that, on CPUs mentioned in the nohz_full or rcu_nocbs boot-argument
       CPU lists, causes call_rcu() to introduce delays.
    
       These delays result in significant power savings on nearly idle
       Android and ChromeOS systems. These savings range from a few percent
       to more than ten percent.
    
       This series also includes several commits that change call_rcu() to a
       new call_rcu_hurry() function that avoids these delays in a few
       cases, for example, where timely wakeups are required. Several of
       these are outside of RCU and thus have acks and reviews from the
       relevant maintainers.
    
     - Create an srcu_read_lock_nmisafe() and an srcu_read_unlock_nmisafe()
       for architectures that support NMIs, but which do not provide
       NMI-safe this_cpu_inc(). These NMI-safe SRCU functions are required
       by the upcoming lockless printk() work by John Ogness et al.
    
     - Changes providing minor but important increases in torture test
       coverage for the new RCU polled-grace-period APIs.
    
     - Changes to torturescript that avoid redundant kernel builds, thus
       providing about a 30% speedup for the torture.sh acceptance test.
    
    * tag 'rcu.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (49 commits)
      net: devinet: Reduce refcount before grace period
      net: Use call_rcu_hurry() for dst_release()
      workqueue: Make queue_rcu_work() use call_rcu_hurry()
      percpu-refcount: Use call_rcu_hurry() for atomic switch
      scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu()
      rcu/rcutorture: Use call_rcu_hurry() where needed
      rcu/rcuscale: Use call_rcu_hurry() for async reader test
      rcu/sync: Use call_rcu_hurry() instead of call_rcu
      rcuscale: Add laziness and kfree tests
      rcu: Shrinker for lazy rcu
      rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
      rcu: Make call_rcu() lazy to save power
      rcu: Implement lockdep_rcu_enabled for !CONFIG_DEBUG_LOCK_ALLOC
      srcu: Debug NMI safety even on archs that don't require it
      srcu: Explain the reason behind the read side critical section on GP start
      srcu: Warn when NMI-unsafe API is used in NMI
      arch/s390: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      arch/loongarch: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
      rcu-tasks: Make grace-period-age message human-readable
      ...
    1fab45ab
Kconfig 24.9 KB