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]
Message-ID: <20221002031046.GA3511311@paulmck-ThinkPad-P17-Gen-1>
Date:   Sat, 1 Oct 2022 20:10:46 -0700
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@...com
Subject: [GIT PULL] RCU changes for v6.1

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 rcu.2022.09.30a
  # HEAD: 5c0ec4900497f7c9cc12f393c329a52e67bc6b8b Merge branches 'doc.2022.08.31b', 'fixes.2022.08.31b', 'kvfree.2022.08.31b', 'nocb.2022.09.01a', 'poll.2022.08.31b', 'poll-srcu.2022.08.31b' and 'tasks.2022.08.31b' into HEAD

----------------------------------------------------------------

RCU pull request for v6.1

This pull request contains the following branches:

doc.2022.08.31b: Documentation updates.  This is the first in a series
	from an ongoing review of the RCU documentation.  "Why are people
	thinking -that- about RCU?  Oh.  Because that is an entirely
	reasonable interpretation of its documentation."

fixes.2022.08.31b: Miscellaneous fixes.

kvfree.2022.08.31b: Improved memory allocation and heuristics.

nocb.2022.09.01a: Improve rcu_nocbs diagnostic output.

poll.2022.08.31b: Add full-sized polled RCU grace period state values.
	These are the same size as an rcu_head structure, which is double
	that of the traditional unsigned long state values that may still
	be obtained from et_state_synchronize_rcu().  The added size
	avoids missing overlapping grace periods.  This benefit is that
	call_rcu() can be replaced by polling, which can be attractive
	in situations where RCU-protected data is aged out of memory.

	Early in the series, the size of this state value is three
	unsigned longs.  Later in the series, the synchronize_rcu() and
	synchronize_rcu_expedited() fastpaths are reworked to permit
	the full state to be represented by only two unsigned longs.
	This reworking slows these two functions down in SMP kernels
	running either on single-CPU systems or on systems with all but
	one CPU offlined, but this should not be a significant problem.
	And if it somehow becomes a problem in some yet-as-unforeseen
	situations, three-value state values can be provided for only
	those situations.

	Finally, a pair of functions named same_state_synchronize_rcu()
	and same_state_synchronize_rcu_full() allow grace-period state
	values to be compared for equality.  This permits users to
	maintain lists of data structures having the same state value,
	removing the need for per-data-structure grace-period state
	values, thus decreasing memory footprint.

poll-srcu.2022.08.31b: Polled SRCU grace-period updates, including
	adding tests to rcutorture and reducing the incidence of Tiny
	SRCU grace-period-state counter wrap.

tasks.2022.08.31b: Improve Tasks RCU diagnostics and quiescent-state
	detection.

----------------------------------------------------------------
Joel Fernandes (Google) (1):
      rcu/kfree: Fix kfree_rcu_shrink_count() return value

Michal Hocko (1):
      rcu: Back off upon fill_page_cache_func() allocation failure

Paul E. McKenney (41):
      doc: Emphasize the need for explicit RCU read-side markers
      doc: Call out queue_rcu_work() for blocking RCU callbacks
      doc: Use rcu_barrier() to rate-limit RCU callbacks
      doc: Fix list: rcu_access_pointer() is not lockdep-checked
      doc: Update rcu_access_pointer() advice in rcu_dereference.rst
      doc: SLAB_TYPESAFE_BY_RCU uses cannot rely on spinlocks
      rcu: Document reason for rcu_all_qs() call to preempt_disable()
      rcu: Update rcu_access_pointer() header for rcu_dereference_protected()
      rcu: Exclude outgoing CPU when it is the last to leave
      rcu/nocb: Add CPU number to CPU-{,de}offload failure messages
      rcu: Add full-sized polling for get_completed*() and poll_state*()
      rcu: Add full-sized polling for get_state()
      rcutorture: Abstract synchronous and polled API testing
      rcutorture: Allow per-RCU-flavor polled double-GP check
      rcutorture: Verify RCU reader prevents full polling from completing
      rcutorture: Remove redundant RTWS_DEF_FREE check
      rcutorture: Verify long-running reader prevents full polling from completing
      rcu: Add full-sized polling for start_poll()
      rcu: Add full-sized polling for start_poll_expedited()
      rcu: Remove blank line from poll_state_synchronize_rcu() docbook header
      rcu: Add full-sized polling for cond_sync_full()
      rcu: Add full-sized polling for cond_sync_exp_full()
      rcu: Disable run-time single-CPU grace-period optimization
      rcu: Set rcu_data structures' initial ->gpwrap value to true
      rcu-tasks: Remove grace-period fast-path rcu-tasks helper
      rcu: Make synchronize_rcu() fast path update ->gp_seq counters
      rcu: Remove expedited grace-period fast-path forward-progress helper
      rcu: Make synchronize_rcu_expedited() fast path update .expedited_sequence
      rcu: Remove ->rgos_polled field from rcu_gp_oldstate structure
      rcutorture: Adjust rcu_poll_need_2gp() for rcu_gp_oldstate field removal
      rcu: Make synchronize_rcu() fastpath update only boot-CPU counters
      rcutorture: Use 1-suffixed variable in rcu_torture_write_types() check
      rcutorture: Expand rcu_torture_write_types() first "if" statement
      rcu: Add functions to compare grace-period state values
      rcutorture: Limit read-side polling-API testing
      rcutorture: Make "srcud" option also test polled grace-period API
      srcu: Add GP and maximum requested GP to Tiny SRCU rcutorture output
      srcu: Make Tiny SRCU poll_state_synchronize_srcu() more precise
      srcu: Make Tiny SRCU use full-sized grace-period counters
      rcu-tasks: Ensure RCU Tasks Trace loops have quiescent states
      Merge branches 'doc.2022.08.31b', 'fixes.2022.08.31b', 'kvfree.2022.08.31b', 'nocb.2022.09.01a', 'poll.2022.08.31b', 'poll-srcu.2022.08.31b' and 'tasks.2022.08.31b' into HEAD

Shao-Tse Hung (1):
      doc/rcu: Update LWN article URLs and add 2019 article

Uladzislau Rezki (Sony) (1):
      rcu/kvfree: Update KFREE_DRAIN_JIFFIES interval

Zhen Lei (2):
      sched/debug: Try trigger_single_cpu_backtrace(cpu) in dump_cpu_task()
      sched/debug: Show the registers of 'current' in dump_cpu_task()

Zqiang (9):
      rcu: Fix rcu_read_unlock_strict() strict QS reporting
      rcu: Update rcu_preempt_deferred_qs() comments for !PREEMPT kernels
      rcu: Add QS check in rcu_exp_handler() for non-preemptible kernels
      rcu: Make tiny RCU support leak callbacks for debug-object errors
      rcu: Avoid triggering strict-GP irq-work when RCU is idle
      rcu/nocb: Choose the right rcuog/rcuop kthreads to output
      rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE()
      rcu-tasks: Make RCU Tasks Trace check for userspace execution
      rcutorture: Use the barrier operation specified by cur_ops

 Documentation/RCU/checklist.rst       |  15 +-
 Documentation/RCU/rcu_dereference.rst |  14 +-
 Documentation/RCU/whatisRCU.rst       |  47 +++--
 include/linux/rcupdate.h              |  42 ++++-
 include/linux/rcutiny.h               |  50 ++++++
 include/linux/rcutree.h               |  40 +++++
 include/linux/srcutiny.h              |  10 +-
 kernel/rcu/rcutorture.c               | 290 +++++++++++++++++++++++++-----
 kernel/rcu/srcutiny.c                 |  14 +-
 kernel/rcu/tasks.h                    |   5 +-
 kernel/rcu/tiny.c                     |  27 ++-
 kernel/rcu/tree.c                     | 330 ++++++++++++++++++++++++++--------
 kernel/rcu/tree_exp.h                 |  57 +++++-
 kernel/rcu/tree_nocb.h                |  10 +-
 kernel/rcu/tree_plugin.h              |  26 +--
 kernel/rcu/tree_stall.h               |   5 +-
 kernel/sched/core.c                   |  14 ++
 kernel/smp.c                          |   3 +-
 18 files changed, 813 insertions(+), 186 deletions(-)

Powered by blists - more mailing lists