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: <20190802151435.GA1081@linux.ibm.com>
Date:   Fri, 2 Aug 2019 08:14:35 -0700
From:   "Paul E. McKenney" <paulmck@...ux.ibm.com>
To:     rcu@...r.kernel.org
Cc:     linux-kernel@...r.kernel.org, mingo@...nel.org,
        jiangshanlai@...il.com, dipankar@...ibm.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
Subject: [PATCH tip/core/rcu 0/14] No-CBs bypass addition for v5.4

Hello!

This series is a sneak preview of additional work for the move of no-CBs
CPUs to the ->cblist segmented RCU callback list.  This work adds
a ->nocb_bypass list with its own lock to further reduce contention.
This series also includes some nascent work to turn the scheduling-clock
interrupt back on for nohz_full CPUs doing heavy rcutorture work or RCU
callback invocation, both of which can remain in the kernel for long
time periods, which in turn can impede CPU hotplug removals.  (On some
systems "impede" means up to seven minutes for stop-machine to actually
get things to stop, a problem that has not yet been observed on no-CBs
CPUs that are not also nohz_full CPUs.)

1.	Atomic ->len field in rcu_segcblist structure.

2.	Add bypass callback queueing in ->nocb_bypass with its own
	->nocb_bypass_lock.

3.	(Experimental) Check use and usefulness of ->nocb_lock_contended.

4.	Print no-CBs diagnostics when rcutorture writer unduly delayed.

5.	Avoid synchronous wakeup in __call_rcu_nocb_wake().

6.	Advance CBs after merge in rcutree_migrate_callbacks() to
	avoid unnecessary invocation delays.

7.	Reduce nocb_cb_wait() leaf rcu_node ->lock contention.

8.	Reduce __call_rcu_nocb_wake() leaf rcu_node ->lock contention.

9.	Don't wake no-CBs GP kthread if timer posted under overload,
	thus reducing overhead in the overload case.

10.	Allow rcu_do_batch() to dynamically adjust batch sizes, courtesy
	of Eric Dumazet.

11.	(Experimental) Add TICK_DEP_BIT_RCU, courtesy of Frederic Weisbecker.

12.	Force on tick when invoking lots of callbacks to reduce the
	probability of long stop-machine delays.

13.	Force on tick for readers and callback flooders, again to reduce
	the probability of long stop-machine delays.

14.	(Experimental and likely quite imperfect) Make multi_cpu_stop()
	enable tick on all online CPUs, yet again to reduce the
	probability of long stop-machine delays.

							Thanx, Paul

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

 include/linux/rcu_segcblist.h |    4 
 include/linux/tick.h          |    7 
 kernel/rcu/rcu_segcblist.c    |  116 +++++++++-
 kernel/rcu/rcu_segcblist.h    |   17 +
 kernel/rcu/rcutorture.c       |   25 +-
 kernel/rcu/tree.c             |   41 +++
 kernel/rcu/tree.h             |   35 ++-
 kernel/rcu/tree_plugin.h      |  486 +++++++++++++++++++++++++++++++++++++-----
 kernel/rcu/tree_stall.h       |    5 
 kernel/stop_machine.c         |    9 
 kernel/time/tick-sched.c      |    2 
 11 files changed, 667 insertions(+), 80 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ