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: <20170525215934.GA11578@linux.vnet.ibm.com>
Date:   Thu, 25 May 2017 14:59:34 -0700
From:   "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:     linux-kernel@...r.kernel.org
Cc:     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, bobby.prani@...il.com
Subject: [PATCH tip/core/rcu 0/88] Commits for 4.13

Hello!

This rather long series mostly removes unused features, shrinks the
include/linux/rcupdate.h file's .i intermediate-output size, updates
rcutorture testing, and supplies miscellaneous fixes.  Branching proved
impractical due to the large footprint of many of the commits, hence the
long linear series.  On the other hand, this series's diffstat summary
line is as follows:

 87 files changed, 1745 insertions(+), 4389 deletions(-)

That is, there is a net removal of more than 2500 lines of code.
The shrinking is near the end of the series, starting with patch 49.

The patches in this series are as follows:

1-5.	Adjust rcutorture testing to better cover SRCU.

6.	Performance fix that prevents rcu_barrier() from starting
	needless grace periods.

7-8.	Fix rcutorture bugs that were failing to test certain
	Kconfig options in some rcutorture scenarios.

9.	Fix a long-standing counter-wrap bug in SRCU.

10.	Fix a bug where preemptible RCU would fail to complain about
	blocking (as opposed to preemption) within an RCU read-side
	critical section.

11-12.	Fix argument-checking bug in the rcuperf performance/scalability
	checking module and remove conflicting Kconfig options.

13.	Remove obsolete references to the long-departed synchronize_kernel()
	RCU API member.

14.	Upgrade rcuperf so that it can performance-test the asynchronous
	call_rcu() primitives.

15.	Add a Kconfig-fragment file for Classic SRCU.

16.	Make sync_rcu_preempt_exp_done() return bool instead of int.

17.	Now that expedited RCU grace periods do not rely on stop-CPUs
	mechanisms and don't IPI idle/nohz_full CPUs, remove the
	checkpatch.pl warning about them.

18.	Add an rcuperf test for dynamically initialized srcu_struct
	structures.

19.	Clarify atomic_ops.rst definition of smp_mb__{before,after}_atomic().

20.	Add header comment to spin_unlock_wait() defining its semantics.

21.	Fix typo in memory-barriers.txt, courtesy of Stan Drozd.

22.	Add the ability to do rcuperf performance tests on tiny RCU flavors.

23.	Make SRCU flavors announce themselves at boot.

24.	Reduce the number of CPUs used in Classic SRCU testing.

25.	Shrink Tiny SRCU a bit more by rearranging and shrinking fields
	in the srcu_struct.

26.	Set more user-friendly kernel-boot parameter defaults.

27.	Use /usr/bin/awk instead of /bin/awk, courtesy of Priyalee
	Kushwaha.

28.	Add writer_holdoff boot parameter to rcuperf to test auto-expediting.

29.	Add "git diff" output to rcutorture's testid.txt file to
	allow exact after-the-fact reconstruction of exactly what
	source code was tested.

30.	Document SRCU auto-expediting requirement.

31.	Add tail-recursion possibility to RCU requirements docuemntation.

32.	Make CONFIG_PROVE_LOCKING kernels warn about failure to have
	preemption disabled in calls to rcu_sched_qs() and rcu_bh_qs().

33-34.	Improve dmesg record of non-default Kconfig and boot-parameter
	settings.

35.	Make the exp_holdoff module parameter be static.

36.	Add dmesg record of non-default auto-expedite holdoff times.

37-38.	Add assertions to enforce lock-held and irq-disabled preconditions.

39.	Make SRCU again be optional.

40.	Inline __srcu_read_lock() to shrink Tiny SRCU.

41.	Add DEBUG_OBJECTS_RCU_HEAD checking to SRCU callbacks.

42-43.	Make synchronize_rcu_mult() check for duplicates, getting rid
	of an ugly #ifdef in sched_cpu_deactivate().

44.	Rename the nonsensical RCU_NOGP_WAKE flags to RCU_NOCB_WAKE_.

45.	Add memory barriers for NOCB leader wakeup.

46.	Add kconfig argument to rcutorture testing to avoid the need
	for lots of special-case Kconfig-fragment files.

47.	Add comments explaining why rcu_node_tree.h and rcu_segcblist.h
	are visible external to the kernel/rcu directory.

48.	Fix a bug in rcutorture where it would wait for kernels to
	complete running even though all builds failed for that batch.

49-57.	Shrink include/linux/rcupdate.h to speed up kernel builds.

58.	Improve the __call_rcu() debug-objects error message.

59-65.	More shrinking include/linux/rcupdate.h to speed up kernel builds,
	including shrinking files included by this file.

66.	Prevent sdp->srcu_gp_seq_needed counter wrap.

67.	Shrink include/linux/srcu.h (and files it includes) to speed
	up kernel builds.

68.	Move to trivial callback lists to further shrink Tiny SRCU.

69.	Use consistent printing primitives within a given function in
	lockdep.c.

70.	Refactor #includes from include/linux/rcupdate.h to reduce the
	amount of material included, in turn speeding up kernel builds.

71-73.	Convert rnp->lock wrappers to macros for SRCU use, thus
	consolidating code.

72-80.	Remove unused code and options.

81.	Fix typo in code generating rcutorture statistics.

82-84.	Remove more unused code and options.

85-86.	Move RCU Kconfig options to kernel/rcu.

87-88.	Remove yet more unused code and options.

							Thanx, Paul

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

 /include/linux/srcuclassic.h                                          |  100 -
 /kernel/rcu/srcu.c                                                    |  669 ----------
 /tools/testing/selftests/rcutorture/configs/rcu/SRCU-C                |   11 
 /tools/testing/selftests/rcutorture/configs/rcuperf/SRCUCLASSIC       |   16 
 Documentation/RCU/trace.txt                                           |  535 -------
 b/Documentation/RCU/00-INDEX                                          |    2 
 b/Documentation/RCU/Design/Requirements/Requirements.html             |   34 
 b/Documentation/RCU/checklist.txt                                     |    8 
 b/Documentation/admin-guide/kernel-parameters.txt                     |   41 
 b/Documentation/core-api/atomic_ops.rst                               |    5 
 b/Documentation/dev-tools/sparse.rst                                  |    6 
 b/Documentation/kernel-per-CPU-kthreads.txt                           |   31 
 b/Documentation/memory-barriers.txt                                   |    2 
 b/Documentation/timers/NO_HZ.txt                                      |   29 
 b/include/linux/compiler.h                                            |    4 
 b/include/linux/rcu_node_tree.h                                       |    4 
 b/include/linux/rcu_segcblist.h                                       |    4 
 b/include/linux/rcupdate.h                                            |  324 ----
 b/include/linux/rcutiny.h                                             |  181 --
 b/include/linux/rcutree.h                                             |   21 
 b/include/linux/spinlock.h                                            |   20 
 b/include/linux/srcu.h                                                |   29 
 b/include/linux/srcuclassic.h                                         |   15 
 b/include/linux/srcutiny.h                                            |   46 
 b/include/linux/srcutree.h                                            |   13 
 b/include/trace/events/rcu.h                                          |    1 
 b/init/Kconfig                                                        |  355 -----
 b/kernel/locking/lockdep.c                                            |  176 +-
 b/kernel/rcu/Kconfig                                                  |  244 +++
 b/kernel/rcu/Kconfig.debug                                            |   82 +
 b/kernel/rcu/Makefile                                                 |    2 
 b/kernel/rcu/rcu.h                                                    |  335 ++++-
 b/kernel/rcu/rcuperf.c                                                |  129 +
 b/kernel/rcu/rcutorture.c                                             |   21 
 b/kernel/rcu/srcu.c                                                   |    7 
 b/kernel/rcu/srcutiny.c                                               |   85 -
 b/kernel/rcu/srcutree.c                                               |  193 +-
 b/kernel/rcu/tiny.c                                                   |   54 
 b/kernel/rcu/tiny_plugin.h                                            |  123 -
 b/kernel/rcu/tree.c                                                   |  195 +-
 b/kernel/rcu/tree.h                                                   |  151 --
 b/kernel/rcu/tree_exp.h                                               |    2 
 b/kernel/rcu/tree_plugin.h                                            |  603 +--------
 b/kernel/rcu/update.c                                                 |   77 +
 b/kernel/sched/core.c                                                 |    8 
 b/kernel/time/Kconfig                                                 |   50 
 b/lib/Kconfig.debug                                                   |  188 --
 b/lib/Makefile                                                        |    3 
 b/scripts/checkpatch.pl                                               |   17 
 b/tools/testing/selftests/rcutorture/bin/config_override.sh           |   61 
 b/tools/testing/selftests/rcutorture/bin/configcheck.sh               |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm-build.sh                 |   13 
 b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh            |   62 
 b/tools/testing/selftests/rcutorture/bin/kvm.sh                       |   38 
 b/tools/testing/selftests/rcutorture/configs/rcu/CFLIST               |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-C               |   13 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-C.boot          |    1 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N               |    2 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P               |    6 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-t               |   10 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-t.boot          |    1 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-u               |    9 
 b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-u.boot          |    1 
 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02               |    5 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE01               |    5 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot          |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02               |    5 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE03               |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot          |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04               |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05               |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05.boot          |    3 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06               |    4 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06.boot          |    3 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE07               |    6 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08               |    1 
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08.boot          |    1 
 b/tools/testing/selftests/rcutorture/configs/rcuperf/SRCUCLASSIC      |   16 
 b/tools/testing/selftests/rcutorture/configs/rcuperf/TINY             |   16 
 b/tools/testing/selftests/rcutorture/configs/rcuperf/TREE             |    1 
 b/tools/testing/selftests/rcutorture/configs/rcuperf/TREE54           |    1 
 b/tools/testing/selftests/rcutorture/doc/TINY_RCU.txt                 |    1 
 b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt         |   34 
 b/tools/testing/selftests/rcutorture/formal/srcu-cbmc/modify_srcu.awk |    2 
 kernel/rcu/tree_trace.c                                               |  494 -------
 tools/testing/selftests/rcutorture/configs/rcu/TREE02-T               |   21 
 tools/testing/selftests/rcutorture/configs/rcu/TREE08-T               |   21 
 87 files changed, 1745 insertions(+), 4389 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ