All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: "Paul E. McKenney" <paulmck@linux.ibm.com>
Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
	stern@rowland.harvard.edu, andrea.parri@amarulasolutions.com,
	benbjiang@tencent.com, joel@joelfernandes.org,
	neeraju@codeaurora.org, oleg@redhat.com, bigeasy@linutronix.de,
	longman@redhat.com, zhenzhong.duan@oracle.com
Subject: Re: [GIT PULL rcu/next + tools/memory-model] RCU and LKMM commits for 5.3
Date: Fri, 28 Jun 2019 19:48:52 +0200	[thread overview]
Message-ID: <20190628174852.GA28078@gmail.com> (raw)
In-Reply-To: <20190627221954.GA27221@linux.ibm.com>


* Paul E. McKenney <paulmck@linux.ibm.com> wrote:

> 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

Pulled, thanks a lot Paul!

	Ingo

      reply	other threads:[~2019-06-28 17:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-27 22:19 [GIT PULL rcu/next + tools/memory-model] RCU and LKMM commits for 5.3 Paul E. McKenney
2019-06-28 17:48 ` Ingo Molnar [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190628174852.GA28078@gmail.com \
    --to=mingo@kernel.org \
    --cc=andrea.parri@amarulasolutions.com \
    --cc=benbjiang@tencent.com \
    --cc=bigeasy@linutronix.de \
    --cc=joel@joelfernandes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=neeraju@codeaurora.org \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.ibm.com \
    --cc=rcu@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=zhenzhong.duan@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.