Commit 98e7dcbb82fa for kernel

commit 98e7dcbb82fa57de8dfad357f9b851c3625797fa
Merge: b687034b1a4d 9a08942f1701
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Dec 3 12:18:07 2025 -0800

    Merge tag 'rcu.release.v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux

    Pull RCU updates from Frederic Weisbecker:
     "SRCU:

       - Properly handle SRCU readers within IRQ disabled sections in tiny
         SRCU

       - Preparation to reimplement RCU Tasks Trace on top of SRCU fast:

          - Introduce API to expedite a grace period and test it through
            rcutorture

          - Split srcu-fast in two flavours: SRCU-fast and SRCU-fast-updown.

            Both are still targeted toward faster readers (without full
            barriers on LOCK and UNLOCK) at the expense of heavier write
            side (using full RCU grace period ordering instead of simply
            full ordering) as compared to "traditional" non-fast SRCU. But
            those srcu-fast flavours are going to be optimized in two
            different ways:

              - SRCU-fast will become the reimplementation basis for
                RCU-TASK-TRACE for consolidation. Since RCU-TASK-TRACE must
                be NMI safe, SRCU-fast must be as well.

              - SRCU-fast-updown will be needed for uretprobes code in order
                to get rid of the read-side memory barriers while still
                allowing entering the reader at task level while exiting it
                in a timer handler. It is considered semaphore-like in that
                it can have different owners between LOCK and UNLOCK.
                However it is not NMI-safe.

            The actual optimizations are work in progress for the next
            cycle. Only the new interfaces are added for now, along with
            related torture and scalability test code.

       - Create/document/debug/torture new proper initializers for RCU fast:
         DEFINE_SRCU_FAST() and init_srcu_struct_fast()

         This allows for using right away the proper ordering on the write
         side (either full ordering or full RCU grace period ordering)
         without waiting for the read side to tell which to use.

         This also optimizes the read side altogether with moving flavour
         debug checks under debug config and with removing a costly RmW
         operation on their first call.

       - Make some diagnostic functions tracing safe

      Refscale:

       - Add performance testing for common context synchronizations
         (Preemption, IRQ, Softirq) and per-cpu increments. Those are
         relevant comparisons against SRCU-fast read side APIs, especially
         as they are planned to synchronize further tracing fast-path code

      Miscellanous:

       - In order to prepare the layout for nohz_full work deferral to user
         exit, the context tracking state must shrink the counter of
         transitions to/from RCU not watching. The only possible hazard is
         to trigger wrap-around more easily, delaying a bit grace periods
         when that happens. This should be a rare event though. Yet add
         debugging and torture code to test that assumption

       - Fix memory leak on locktorture module

       - Annotate accesses in rculist_nulls.h to prevent from KCSAN
         warnings. On recent discussions, we also concluded that all those
         WRITE_ONCE() and READ_ONCE() on list APIs deserve appropriate
         comments. Something to be expected for the next cycle

       - Provide a script to apply several configs to several commits with
         torture

       - Allow torture to reuse a build directory in order to save needless
         rebuild time

       - Various cleanups"

    * tag 'rcu.release.v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux: (29 commits)
      refscale: Add SRCU-fast-updown readers
      refscale: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()
      rcutorture: Make srcu{,d}_torture_init() announce the SRCU type
      srcu: Create an SRCU-fast-updown API
      refscale: Do not disable interrupts for tests involving local_bh_enable()
      refscale: Add non-atomic per-CPU increment readers
      refscale: Add this_cpu_inc() readers
      refscale: Add preempt_disable() readers
      refscale: Add local_bh_disable() readers
      refscale: Add local_irq_disable() and local_irq_save() readers
      torture: Permit negative kvm.sh --kconfig numberic arguments
      srcu: Add SRCU_READ_FLAVOR_FAST_UPDOWN CPP macro
      rcu: Mark diagnostic functions as notrace
      rcutorture: Make TREE04 use CONFIG_RCU_DYNTICKS_TORTURE
      rcutorture: Remove redundant rcutorture_one_extend() from rcu_torture_one_read()
      rcutorture: Permit kvm-again.sh to re-use the build directory
      torture: Add kvm-series.sh to test commit/scenario combination
      rcu: use WRITE_ONCE() for ->next and ->pprev of hlist_nulls
      locktorture: Fix memory leak in param_set_cpumask()
      doc: Update for SRCU-fast definitions and initialization
      ...