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
| ||
|
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