• Linus Torvalds's avatar
    Merge tag 'rcu.2023.02.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 8cc01d43
    Linus Torvalds authored
    Pull RCU updates from Paul McKenney:
    
     - Documentation updates
    
     - Miscellaneous fixes, perhaps most notably:
    
          - Throttling callback invocation based on the number of callbacks
            that are now ready to invoke instead of on the total number of
            callbacks
    
          - Several patches that suppress false-positive boot-time
            diagnostics, for example, due to lockdep not yet being
            initialized
    
          - Make expedited RCU CPU stall warnings dump stacks of any tasks
            that are blocking the stalled grace period. (Normal RCU CPU
            stall warnings have done this for many years)
    
          - Lazy-callback fixes to avoid delays during boot, suspend, and
            resume. (Note that lazy callbacks must be explicitly enabled, so
            this should not (yet) affect production use cases)
    
     - Make kfree_rcu() and friends take advantage of polled grace periods,
       thus reducing memory footprint by almost two orders of magnitude,
       admittedly on a microbenchmark
    
       This also begins the transition from kfree_rcu(p) to
       kfree_rcu_mightsleep(p). This transition was motivated by bugs where
       kfree_rcu(p), which can block, was typed instead of the intended
       kfree_rcu(p, rh)
    
     - SRCU updates, perhaps most notably fixing a bug that causes SRCU to
       fail when booted on a system with a non-zero boot CPU. This
       surprising situation actually happens for kdump kernels on the
       powerpc architecture
    
       This also adds an srcu_down_read() and srcu_up_read(), which act like
       srcu_read_lock() and srcu_read_unlock(), but allow an SRCU read-side
       critical section to be handed off from one task to another
    
     - Clean up the now-useless SRCU Kconfig option
    
       There are a few more commits that are not yet acked or pulled into
       maintainer trees, and these will be in a pull request for a later
       merge window
    
     - RCU-tasks updates, perhaps most notably these fixes:
    
          - A strange interaction between PID-namespace unshare and the
            RCU-tasks grace period that results in a low-probability but
            very real hang
    
          - A race between an RCU tasks rude grace period on a single-CPU
            system and CPU-hotplug addition of the second CPU that can
            result in a too-short grace period
    
          - A race between shrinking RCU tasks down to a single callback
            list and queuing a new callback to some other CPU, but where
            that queuing is delayed for more than an RCU grace period. This
            can result in that callback being stranded on the non-boot CPU
    
     - Torture-test updates and fixes
    
     - Torture-test scripting updates and fixes
    
     - Provide additional RCU CPU stall-warning information in kernels built
       with CONFIG_RCU_CPU_STALL_CPUTIME=y, and restore the full five-minute
       timeout limit for expedited RCU CPU stall warnings
    
    * tag 'rcu.2023.02.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (80 commits)
      rcu/kvfree: Add kvfree_rcu_mightsleep() and kfree_rcu_mightsleep()
      kernel/notifier: Remove CONFIG_SRCU
      init: Remove "select SRCU"
      fs/quota: Remove "select SRCU"
      fs/notify: Remove "select SRCU"
      fs/btrfs: Remove "select SRCU"
      fs: Remove CONFIG_SRCU
      drivers/pci/controller: Remove "select SRCU"
      drivers/net: Remove "select SRCU"
      drivers/md: Remove "select SRCU"
      drivers/hwtracing/stm: Remove "select SRCU"
      drivers/dax: Remove "select SRCU"
      drivers/base: Remove CONFIG_SRCU
      rcu: Disable laziness if lazy-tracking says so
      rcu: Track laziness during boot and suspend
      rcu: Remove redundant call to rcu_boost_kthread_setaffinity()
      rcu: Allow up to five minutes expedited RCU CPU stall-warning timeouts
      rcu: Align the output of RCU CPU stall warning messages
      rcu: Add RCU stall diagnosis information
      sched: Add helper nr_context_switches_cpu()
      ...
    8cc01d43
Kconfig 64.4 KB