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>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 2 Dec 2022 17:11:47 -0800
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     torvalds@...ux-foundation.org
Cc:     mingo@...nel.org, linux-kernel@...r.kernel.org, tglx@...utronix.de,
        rcu@...r.kernel.org, kernel-team@...a.com
Subject: [GIT PULL] RCU changes for v6.2

Hello, Linus,

Once the merge window opens, please pull the latest RCU git tree from:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/rcu.2022.12.02a
  # HEAD: 87492c06e68d802852c7ba76b4d3fde50807d72a Merge branches 'doc.2022.10.20a', 'fixes.2022.10.21a', 'lazy.2022.11.30a', 'srcunmisafe.2022.11.09a', 'torture.2022.10.18c' and 'torturescript.2022.10.20a' into HEAD (2022-11-30 13:20:05 -0800)

----------------------------------------------------------------
RCU pull request for v6.2

This pull request contains the following branches:

doc.2022.10.20a: Documentation updates.  This is the second
	in a series from an ongoing review of the RCU documentation.

fixes.2022.10.21a: Miscellaneous fixes.

lazy.2022.11.30a: Introduces 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.

srcunmisafe.2022.11.09a: Creates 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.

	That printk() series depends on these commits, so if you pull
	the printk() series before this one, you will have already
	pulled in this branch, plus two more SRCU commits:

	0cd7e350abc4 ("rcu: Make SRCU mandatory")
	51f5f78a4f80 ("srcu: Make Tiny synchronize_srcu() check for readers")

	These two commits appear to work well, but do not have
	sufficient testing exposure over a long enough time for me to
	feel comfortable pushing them unless something in mainline is
	definitely going to use them immediately, and currently only
	the new printk() work uses them.

torture.2022.10.18c: Changes providing minor but important increases
	in test coverage for the new RCU polled-grace-period APIs.

torturescript.2022.10.20a: Changes that avoid redundant kernel builds,
	thus providing about a 30% speedup for the torture.sh acceptance
	test.

----------------------------------------------------------------
Eric Dumazet (1):
      net: devinet: Reduce refcount before grace period

Frederic Weisbecker (4):
      rcu: Fix missing nocb gp wake on rcu_barrier()
      srcu: Warn when NMI-unsafe API is used in NMI
      srcu: Explain the reason behind the read side critical section on GP start
      srcu: Debug NMI safety even on archs that don't require it

Joel Fernandes (Google) (10):
      rcu: Use READ_ONCE() for lockless read of rnp->qsmask
      rcu: Fix late wakeup when flush of bypass cblist happens
      rcu: Make call_rcu() lazy to save power
      rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
      rcuscale: Add laziness and kfree tests
      rcu/sync: Use call_rcu_hurry() instead of call_rcu
      rcu/rcuscale: Use call_rcu_hurry() for async reader test
      rcu/rcutorture: Use call_rcu_hurry() where needed
      percpu-refcount: Use call_rcu_hurry() for atomic switch
      net: Use call_rcu_hurry() for dst_release()

John Ogness (1):
      rcu: Implement lockdep_rcu_enabled for !CONFIG_DEBUG_LOCK_ALLOC

Paul E. McKenney (25):
      srcu: Convert ->srcu_lock_count and ->srcu_unlock_count to atomic
      doc: Remove arrayRCU.rst
      doc: Update checklist.txt
      rcutorture: Verify NUM_ACTIVE_RCU_POLL_FULL_OLDSTATE
      rcutorture: Verify NUM_ACTIVE_RCU_POLL_OLDSTATE
      rcutorture: Add --bootargs parameter to kvm-again.sh
      torture: Use mktemp instead of guessing at unique names
      rcutorture: Make kvm-test-1-run-qemu.sh check for alternative output
      rcutorture: Make kvm-recheck.sh export TORTURE_SUITE
      rcutorture: Add --datestamp parameter to kvm-again.sh
      rcutorture: Avoid redundant builds for rcuscale and refscale in torture.sh
      doc: Update listRCU.rst
      doc: Update RCU's lockdep.rst
      srcu: Create an srcu_read_lock_nmisafe() and srcu_read_unlock_nmisafe()
      srcu: Check for consistent per-CPU per-srcu_struct NMI safety
      srcu: Check for consistent global per-srcu_struct NMI safety
      arch/x86: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      arch/arm64: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      rcutorture: Avoid torture.sh compressing identical files
      torture: Make torture.sh create a properly formatted log file
      slab: Explain why SLAB_TYPESAFE_BY_RCU reference before locking
      rcu-tasks: Make grace-period-age message human-readable
      arch/loongarch: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      arch/s390: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
      Merge branches 'doc.2022.10.20a', 'fixes.2022.10.21a', 'lazy.2022.11.30a', 'srcunmisafe.2022.11.09a', 'torture.2022.10.18c' and 'torturescript.2022.10.20a' into HEAD

Pingfan Liu (1):
      rcu: Synchronize ->qsmaskinitnext in rcu_boost_kthread_setaffinity()

Uladzislau Rezki (2):
      scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu()
      workqueue: Make queue_rcu_work() use call_rcu_hurry()

Vineeth Pillai (1):
      rcu: Shrinker for lazy rcu

Yipeng Zou (1):
      rcu: Remove rcu_is_idle_cpu()

Zeng Heng (1):
      rcu: Remove unused 'cpu' in rcu_virt_note_context_switch()

Zhen Lei (1):
      rcu: Simplify rcu_init_nohz() cpumask handling

Zqiang (2):
      rcu: Remove duplicate RCU exp QS report from rcu_report_dead()
      rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()

 Documentation/RCU/arrayRCU.rst                     | 165 -------------
 Documentation/RCU/checklist.rst                    | 244 +++++++++++--------
 Documentation/RCU/index.rst                        |   1 -
 Documentation/RCU/listRCU.rst                      | 174 ++++++++------
 Documentation/RCU/lockdep.rst                      |   4 +
 arch/Kconfig                                       |   3 +
 arch/arm64/Kconfig                                 |   1 +
 arch/loongarch/Kconfig                             |   1 +
 arch/s390/Kconfig                                  |   1 +
 arch/x86/Kconfig                                   |   1 +
 drivers/scsi/scsi_error.c                          |   2 +-
 include/linux/kvm_host.h                           |   2 +-
 include/linux/rcupdate.h                           |  14 ++
 include/linux/rcutiny.h                            |   4 +-
 include/linux/rcutree.h                            |   4 +-
 include/linux/slab.h                               |  11 +
 include/linux/srcu.h                               |  63 +++++
 include/linux/srcutree.h                           |   5 +-
 kernel/rcu/Kconfig                                 |  11 +
 kernel/rcu/rcu.h                                   |   8 +
 kernel/rcu/rcuscale.c                              |  69 +++++-
 kernel/rcu/rcutorture.c                            |  72 ++++--
 kernel/rcu/srcutree.c                              | 100 ++++++--
 kernel/rcu/sync.c                                  |   2 +-
 kernel/rcu/tasks.h                                 |   2 +-
 kernel/rcu/tiny.c                                  |   2 +-
 kernel/rcu/tree.c                                  | 152 +++++++-----
 kernel/rcu/tree.h                                  |  12 +-
 kernel/rcu/tree_exp.h                              |   2 +-
 kernel/rcu/tree_nocb.h                             | 259 ++++++++++++++++-----
 kernel/rcu/tree_plugin.h                           |   5 +-
 kernel/workqueue.c                                 |   2 +-
 lib/percpu-refcount.c                              |   3 +-
 net/core/dst.c                                     |   2 +-
 net/ipv4/devinet.c                                 |  19 +-
 .../testing/selftests/rcutorture/bin/config2csv.sh |   3 +-
 .../selftests/rcutorture/bin/config_override.sh    |   3 +-
 .../selftests/rcutorture/bin/configcheck.sh        |   3 +-
 .../testing/selftests/rcutorture/bin/configinit.sh |   3 +-
 .../testing/selftests/rcutorture/bin/kvm-again.sh  |  49 +++-
 .../selftests/rcutorture/bin/kvm-assign-cpus.sh    |   3 +-
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |   3 +-
 .../selftests/rcutorture/bin/kvm-end-run-stats.sh  |   3 +-
 .../selftests/rcutorture/bin/kvm-recheck.sh        |   2 +-
 .../testing/selftests/rcutorture/bin/kvm-remote.sh |  13 +-
 .../rcutorture/bin/kvm-test-1-run-batch.sh         |   3 +-
 .../rcutorture/bin/kvm-test-1-run-qemu.sh          |   5 +-
 .../selftests/rcutorture/bin/kvm-test-1-run.sh     |   3 +-
 .../selftests/rcutorture/bin/kvm-transform.sh      |  68 +++++-
 tools/testing/selftests/rcutorture/bin/kvm.sh      |   3 +-
 .../selftests/rcutorture/bin/parse-build.sh        |   3 +-
 tools/testing/selftests/rcutorture/bin/torture.sh  | 145 ++++++++++--
 52 files changed, 1159 insertions(+), 578 deletions(-)
 delete mode 100644 Documentation/RCU/arrayRCU.rst

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ