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: <20211202002848.GA3127439@paulmck-ThinkPad-P17-Gen-1>
Date:   Wed, 1 Dec 2021 16:28:48 -0800
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     rcu@...r.kernel.org
Cc:     linux-kernel@...r.kernel.org, kernel-team@...com, mingo@...nel.org,
        jiangshanlai@...il.com, akpm@...ux-foundation.org,
        mathieu.desnoyers@...icios.com, josh@...htriplett.org,
        tglx@...utronix.de, peterz@...radead.org, rostedt@...dmis.org,
        dhowells@...hat.com, edumazet@...gle.com, fweisbec@...il.com,
        oleg@...hat.com, joel@...lfernandes.org, yury.norov@...il.com
Subject: [PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17

Hello!

This series provides RCU no-CB CPUs updates, most notably the ability
to offload CPUs that are in de-offloaded state at boot time.

1.	Tighten rcu_advance_cbs_nowake() checks.

2.	Make local rcu_nocb_lock_irqsave() safe against concurrent
	deoffloading, courtesy of Frederic Weisbecker.

3.	Prepare state machine for a new step, courtesy of Frederic
	Weisbecker.

4.	Invoke rcu_core() at the start of deoffloading, courtesy of
	Frederic Weisbecker.

5.	Make rcu_core() callbacks acceleration preempt-safe, courtesy
	of Thomas Gleixner.

6.	Make rcu_core() callbacks acceleration (de-)offloading safe,
	courtesy of Frederic Weisbecker.

7.	Check a stable offloaded state to manipulate qlen_last_fqs_check,
	courtesy of Frederic Weisbecker.

8.	Use appropriate rcu_nocb_lock_irqsave(), courtesy of Frederic
	Weisbecker.

9.	Limit number of softirq callbacks only on softirq, courtesy of
	Frederic Weisbecker.

10.	Fix callbacks processing time limit retaining cond_resched(),
	courtesy of Frederic Weisbecker.

11.	Apply callbacks processing time limit only on softirq, courtesy
	of Frederic Weisbecker.

12.	Don't invoke local rcu core on callback overload from nocb
	kthread, courtesy of Frederic Weisbecker.

13.	Remove rcu_node structure from nocb list when de-offloaded,
	courtesy of Frederic Weisbecker.

14.	Prepare nocb_cb_wait() to start with a non-offloaded rdp,
	courtesy of Frederic Weisbecker.

15.	Optimize kthreads and rdp initialization, courtesy of Frederic
	Weisbecker.

16.	Create kthreads on all CPUs if "rcu_nocbs=" or "nohz_full="
	are passed, courtesy of Frederic Weisbecker.

17.	Allow empty "rcu_nocbs" kernel parameter, courtesy of Frederic
	Weisbecker.

18.	Merge rcu_spawn_cpu_nocb_kthread() and
	rcu_spawn_one_nocb_kthread(), courtesy of Frederic Weisbecker.

Note that #17 might be updated given some ongoing work by Yury Norov
to support "none" for bitmaps, including the cpumask taken by the
rcu_nocbs kernel-boot parameter.

						Thanx, Paul

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

 b/Documentation/admin-guide/kernel-parameters.txt |   37 +++--
 b/include/linux/rcu_segcblist.h                   |   37 +++--
 b/kernel/rcu/rcu_segcblist.c                      |    6 
 b/kernel/rcu/rcu_segcblist.h                      |   12 +
 b/kernel/rcu/tree.c                               |    7 -
 b/kernel/rcu/tree.h                               |   16 +-
 b/kernel/rcu/tree_nocb.h                          |   24 ++-
 include/linux/rcu_segcblist.h                     |   14 ++
 kernel/rcu/rcu_segcblist.c                        |    6 
 kernel/rcu/tree.c                                 |  117 +++++++++++-------
 kernel/rcu/tree.h                                 |    7 -
 kernel/rcu/tree_nocb.h                            |  140 ++++++++++++++--------
 12 files changed, 275 insertions(+), 148 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ