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: <20190627221954.GA27221@linux.ibm.com>
Date:   Thu, 27 Jun 2019 15:19:54 -0700
From:   "Paul E. McKenney" <paulmck@...ux.ibm.com>
To:     mingo@...nel.org
Cc:     rcu@...r.kernel.org, linux-kernel@...r.kernel.org,
        stern@...land.harvard.edu, andrea.parri@...rulasolutions.com,
        benbjiang@...cent.com, joel@...lfernandes.org,
        neeraju@...eaurora.org, oleg@...hat.com, bigeasy@...utronix.de,
        longman@...hat.com, zhenzhong.duan@...cle.com
Subject: [GIT PULL rcu/next + tools/memory-model] RCU and LKMM commits for 5.3

Hello, Ingo,

This pull request contains the following changes:

1.	RCU flavor consolidation cleanups and optmizations.

	http://lkml.kernel.org/r/20190530145204.GA28526@linux.ibm.com

2.	Documentation updates.

	http://lkml.kernel.org/r/20190530145504.GA29820@linux.ibm.com

3.	Miscellaneous fixes.

	http://lkml.kernel.org/r/20190530145942.GA30318@linux.ibm.com

4.	SRCU updates.

	http://lkml.kernel.org/r/20190530150347.GA31311@linux.ibm.com

5.	RCU-sync flavor consolidation.

	http://lkml.kernel.org/r/20190530150816.GA32130@linux.ibm.com

6.	Torture-test updates.

	http://lkml.kernel.org/r/20190530151650.GA422@linux.ibm.com

7.	Linux-kernel memory-consistency-model updates, most notably
	the addition of plain C-language accesses.

	http://lkml.kernel.org/r/20190530144202.GA26201@linux.ibm.com
	http://lkml.kernel.org/r/Pine.LNX.4.44L0.1906201151210.1512-100000@iolanthe.rowland.org
	http://lkml.kernel.org/r/Pine.LNX.4.44L0.1906201152370.1512-100000@iolanthe.rowland.org
	http://lkml.kernel.org/r/Pine.LNX.4.44L0.1906201153470.1512-100000@iolanthe.rowland.org

	These last three were relatively late additions responding to
	LKML feedback.	However, the resulting memory model passes its
	rather large library of tests, and these changes are furthermore
	required to correctly model some tricky situations involving
	use of RCU without rcu_assign_pointer() and rcu_dereference().
	These tricky sequences are not theoretical in nature, but rather
	from fixes identified by Herbert Xu.  It therefore seems best
	to get these upstream sooner rather than later.

All of these changes have been subjected to 0day Test Robot and -next
testing, and are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo

for you to fetch changes up to b989ff070574ad8b8621d866de0a8e9a65d42c80:

  Merge LKMM and RCU commits (2019-06-24 09:12:39 -0700)

These changes do increase the size of the kernel by about 300 lines.
About 150 of this was due largely to improvements in rcutorture's
forward-progress testing.  Not quite another 100 of this was due to
allowing Tree SRCU to be used from modules without needing to adjust the
size of the reserved region.  Not quite an additional 100 of this was for
cleanups after the RCU flavor consolidation effort, including accidentally
fixing a self-deadlock encountered by Sebastian Siewior when booting
with the threadirqs kernel parameter.  Finally, yet another not quite
100 of this was for adding LKMM's support for plain C-language accesses.
This totals to more than 300 because other changes removed code.

----------------------------------------------------------------
Alan Stern (7):
      tools/memory-model: Prepare for data-race detection
      tools/memory-model: Add definitions of plain and marked accesses
      tools/memory-model: Add data-race detection
      Documentation: atomic_t.txt: Explain ordering provided by smp_mb__{before,after}_atomic()
      tools/memory-model: Expand definition of barrier
      tools/memory-model: Change definition of rcu-fence
      tools/memory-model: Improve data-race detection

Andrea Parri (3):
      rcu: Don't return a value from rcu_assign_pointer()
      tools/memory-model: Fix comment in MP+poonceonces.litmus
      tools/memory-model: Do not use "herd" to refer to "herd7"

Jiang Biao (2):
      rcu: Remove unused rdp local from synchronize_rcu_expedited()
      rcu: Make __call_srcu static

Joel Fernandes (Google) (7):
      lockdep: Add assertion to check if in an interrupt
      rcu: Add checks for dynticks counters in rcu_is_cpu_rrupt_from_idle()
      doc/rcuref: Document real world examples in kernel
      srcu: Remove unused vmlinux srcu linker entries
      module: Make srcu_struct ptr array as read-only
      rcutorture: Select from only online CPUs
      rcutorture: Add cpu0 to the set of CPUs to add jitter

Neeraj Upadhyay (2):
      rcu: Dump specified number of blocked tasks
      rcu: Correctly unlock root node in rcu_check_gp_start_stall()

Oleg Nesterov (4):
      rcu/sync: Kill rcu_sync_type/gp_type
      uprobes: Use DEFINE_STATIC_PERCPU_RWSEM() to initialize dup_mmap_sem
      locking/percpu-rwsem: Add DEFINE_PERCPU_RWSEM(), use it to initialize cgroup_threadgroup_rwsem
      rcu/sync: Simplify the state machine

Paul E. McKenney (34):
      rcu: Check for wakeup-safe conditions in rcu_read_unlock_special()
      rcu: Only do rcu_read_unlock_special() wakeups if expedited
      rcu: Allow rcu_read_unlock_special() to raise_softirq() if in_irq()
      rcu: Use irq_work to get scheduler's attention in clean context
      rcu: Inline invoke_rcu_callbacks() into its sole remaining caller
      rcu: Avoid self-IPI in sync_rcu_exp_select_node_cpus()
      rcu: Avoid self-IPI in sync_sched_exp_online_cleanup()
      rcu: Rename rcu_data's ->deferred_qs to ->exp_deferred_qs
      rcu: Make kfree_rcu() ignore NULL pointers
      rcu: Set a maximum limit for back-to-back callback invocation
      doc: Remove ".vnet" from paulmck email addresses
      srcu: Allocate per-CPU data for DEFINE_SRCU() in modules
      rcutorture: Add cond_resched() to forward-progress free-up loop
      rcutorture: Fix stutter_wait() return value and freelist checks
      torture: Allow inter-stutter interval to be specified
      torture: Make kvm-find-errors.sh and kvm-recheck.sh provide exit status
      rcutorture: Provide rudimentary Makefile
      rcutorture: Exempt tasks RCU from timely draining of grace periods
      rcutorture: Exempt TREE01 from forward-progress testing
      rcutorture: Give the scheduler a chance on PREEMPT && NO_HZ_FULL kernels
      rcutorture: Halt forward-progress checks at end of run
      rcutorture: Add trivial RCU implementation
      torture: Capture qemu output
      torture: Add function graph-tracing cheat sheet
      torture: Run kernel build in source directory
      torture: Make --cpus override idleness calculations
      torture: Add --trust-make to suppress "make clean"
      rcutorture: Dump trace buffer for callback pipe drain failures
      torture: Suppress propagating trace_printk() warning
      rcutorture: Upper case solves the case of the vanishing NULL pointer
      rcu: Upgrade sync_exp_work_done() to smp_mb()
      rcu: Fix irritating whitespace error in rcu_assign_pointer()
      Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a', 'srcu.2019.05.28a', 'sync.2019.05.28a' and 'torture.2019.05.28a' into HEAD
      Merge LKMM and RCU commits

Sebastian Andrzej Siewior (2):
      rcu: Enable elimination of Tree-RCU softirq processing
      rcutorture: Tweak kvm options

Waiman Long (1):
      rcu: Force inlining of rcu_read_lock()

Zhenzhong Duan (1):
      doc: Fixup definition of rcupdate.rcu_task_stall_timeout

 Documentation/RCU/rcuref.txt                       |  21 +-
 Documentation/RCU/stallwarn.txt                    |   2 +-
 Documentation/RCU/whatisRCU.txt                    |   8 +-
 Documentation/admin-guide/kernel-parameters.txt    |   6 +
 Documentation/atomic_t.txt                         |  17 +-
 Documentation/core-api/circular-buffers.rst        |   2 +-
 Documentation/memory-barriers.txt                  |   2 +-
 .../translations/ko_KR/memory-barriers.txt         |   2 +-
 include/linux/lockdep.h                            |   7 +
 include/linux/module.h                             |   5 +
 include/linux/percpu-rwsem.h                       |  10 +-
 include/linux/rcu_sync.h                           |  40 ++--
 include/linux/rcupdate.h                           |  21 +-
 include/linux/sched.h                              |   2 +-
 include/linux/srcutree.h                           |  14 +-
 include/linux/torture.h                            |   2 +-
 kernel/cgroup/cgroup.c                             |   3 +-
 kernel/events/uprobes.c                            |   4 +-
 kernel/locking/locktorture.c                       |   2 +-
 kernel/locking/percpu-rwsem.c                      |   2 +-
 kernel/module.c                                    |   5 +
 kernel/rcu/rcu.h                                   |   5 +
 kernel/rcu/rcutorture.c                            |  96 +++++++--
 kernel/rcu/srcutree.c                              |  69 ++++++-
 kernel/rcu/sync.c                                  | 214 ++++++++++-----------
 kernel/rcu/tree.c                                  | 164 +++++++++++++---
 kernel/rcu/tree.h                                  |   6 +-
 kernel/rcu/tree_exp.h                              |  53 +++--
 kernel/rcu/tree_plugin.h                           | 195 ++++++-------------
 kernel/rcu/tree_stall.h                            |   4 +-
 kernel/rcu/update.c                                |  13 ++
 kernel/torture.c                                   |  23 ++-
 tools/include/linux/rcu.h                          |   4 +-
 tools/memory-model/linux-kernel.bell               |   6 +
 tools/memory-model/linux-kernel.cat                | 102 +++++++---
 tools/memory-model/linux-kernel.def                |   1 +
 .../litmus-tests/MP+poonceonces.litmus             |   2 +-
 tools/memory-model/litmus-tests/README             |   2 +-
 tools/memory-model/lock.cat                        |   2 +-
 tools/memory-model/scripts/README                  |   4 +-
 tools/memory-model/scripts/checkalllitmus.sh       |   2 +-
 tools/memory-model/scripts/checklitmus.sh          |   2 +-
 tools/memory-model/scripts/parseargs.sh            |   2 +-
 tools/memory-model/scripts/runlitmushist.sh        |   2 +-
 tools/testing/radix-tree/linux/rcupdate.h          |   2 +-
 tools/testing/selftests/rcutorture/Makefile        |   3 +
 .../testing/selftests/rcutorture/bin/configinit.sh |  39 ++--
 tools/testing/selftests/rcutorture/bin/cpus2use.sh |   5 +
 .../testing/selftests/rcutorture/bin/functions.sh  |  13 +-
 tools/testing/selftests/rcutorture/bin/jitter.sh   |  13 +-
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |   9 +-
 .../selftests/rcutorture/bin/kvm-find-errors.sh    |   3 +
 .../selftests/rcutorture/bin/kvm-recheck.sh        |  13 +-
 .../selftests/rcutorture/bin/kvm-test-1-run.sh     |  23 +--
 tools/testing/selftests/rcutorture/bin/kvm.sh      |  14 +-
 .../selftests/rcutorture/bin/parse-build.sh        |   2 +-
 .../selftests/rcutorture/bin/parse-console.sh      |   1 +
 .../selftests/rcutorture/configs/rcu/CFcommon      |   3 +
 .../selftests/rcutorture/configs/rcu/TREE01.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TRIVIAL       |  14 ++
 .../selftests/rcutorture/configs/rcu/TRIVIAL.boot  |   3 +
 61 files changed, 845 insertions(+), 466 deletions(-)
 create mode 100644 tools/testing/selftests/rcutorture/Makefile
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL.boot

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ