lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251201120524.15568-1-frederic@kernel.org>
Date: Mon,  1 Dec 2025 13:05:24 +0100
From: Frederic Weisbecker <frederic@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
	Frederic Weisbecker <frederic@...nel.org>,
	"Paul E . McKenney" <paulmck@...nel.org>,
	Joel Fernandes <joelagnelf@...dia.com>,
	Neeraj Upadhyay <neeraj.upadhyay@....com>,
	Uladzislau Rezki <urezki@...il.com>,
	Boqun Feng <boqun.feng@...il.com>,
	rcu <rcu@...r.kernel.org>
Subject: [GIT PULL] RCU updates for v6.19

Hi Linus,

The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:

  Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.release.v6.19

for you to fetch changes up to 9a08942f17017b708991c5089843d4a1bfac4420:

  Merge branch 'rcu/misc' into next (2025-11-30 22:20:33 +0100)

----------------------------------------------------------------
RCU pull request for v6.19

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. Also this 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.

No known conflicts.

----------------------------------------------------------------
Frederic Weisbecker (3):
      Merge branch 'rcu/srcu' into next
      Merge branch 'rcu/refscale' into next
      Merge branch 'rcu/misc' into next

Paul E. McKenney (25):
      srcu: Permit Tiny SRCU srcu_read_unlock() with interrupts disabled
      srcu: Create an srcu_expedite_current() function
      rcutorture: Test srcu_expedite_current()
      srcu: Create a DEFINE_SRCU_FAST()
      srcu: Make grace-period determination use ssp->srcu_reader_flavor
      rcutorture: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()
      srcu: Require special srcu_struct define/init for SRCU-fast readers
      srcu: Make SRCU-fast readers enforce use of SRCU-fast definition/init
      doc: Update for SRCU-fast definitions and initialization
      torture: Add kvm-series.sh to test commit/scenario combination
      rcutorture: Permit kvm-again.sh to re-use the build directory
      rcutorture: Remove redundant rcutorture_one_extend() from rcu_torture_one_read()
      rcu: Mark diagnostic functions as notrace
      srcu: Add SRCU_READ_FLAVOR_FAST_UPDOWN CPP macro
      torture: Permit negative kvm.sh --kconfig numberic arguments
      refscale: Add local_irq_disable() and local_irq_save() readers
      refscale: Add local_bh_disable() readers
      refscale: Add preempt_disable() readers
      refscale: Add this_cpu_inc() readers
      refscale: Add non-atomic per-CPU increment readers
      refscale: Do not disable interrupts for tests involving local_bh_enable()
      srcu: Create an SRCU-fast-updown API
      rcutorture: Make srcu{,d}_torture_init() announce the SRCU type
      refscale: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()
      refscale: Add SRCU-fast-updown readers

Valentin Schneider (2):
      rcu: Add a small-width RCU watching counter debug option
      rcutorture: Make TREE04 use CONFIG_RCU_DYNTICKS_TORTURE

Wang Liang (1):
      locktorture: Fix memory leak in param_set_cpumask()

Xuanqiang Luo (1):
      rcu: use WRITE_ONCE() for ->next and ->pprev of hlist_nulls

 .../RCU/Design/Requirements/Requirements.rst       |  33 +-
 Documentation/RCU/checklist.rst                    |  12 +-
 Documentation/RCU/whatisRCU.rst                    |   3 +
 include/linux/context_tracking_state.h             |  44 ++-
 include/linux/notifier.h                           |   2 +-
 include/linux/rculist_nulls.h                      |   6 +-
 include/linux/srcu.h                               | 147 ++++++--
 include/linux/srcutiny.h                           |  31 +-
 include/linux/srcutree.h                           |  99 ++++--
 kernel/locking/locktorture.c                       |   8 +-
 kernel/rcu/Kconfig.debug                           |  15 +
 kernel/rcu/rcutorture.c                            |  76 ++++-
 kernel/rcu/refscale.c                              | 379 ++++++++++++++++++++-
 kernel/rcu/srcutiny.c                              |  13 +-
 kernel/rcu/srcutree.c                              | 130 ++++++-
 kernel/rcu/tree.c                                  |   2 +-
 kernel/rcu/update.c                                |   8 +-
 .../testing/selftests/rcutorture/bin/kvm-again.sh  |  56 ++-
 .../testing/selftests/rcutorture/bin/kvm-series.sh | 116 +++++++
 tools/testing/selftests/rcutorture/bin/kvm.sh      |   2 +-
 .../selftests/rcutorture/configs/rcu/TREE04        |   1 +
 21 files changed, 1041 insertions(+), 142 deletions(-)
 create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-series.sh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ