All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, jiangshanlai@gmail.com,
	dipankar@in.ibm.com, akpm@linux-foundation.org,
	mathieu.desnoyers@efficios.com, josh@joshtriplett.org,
	tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org,
	dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com,
	oleg@redhat.com, Ingo Molnar <mingo@redhat.com>,
	Will Deacon <will.deacon@arm.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	Andrea Parri <parri.andrea@gmail.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH v5 tip/core/rcu 4/9] completion: Replace spin_unlock_wait() with lock/unlock pair
Date: Thu, 17 Aug 2017 08:32:35 -0700	[thread overview]
Message-ID: <20170817153235.GA16352@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170817141304.GP7017@linux.vnet.ibm.com>

On Thu, Aug 17, 2017 at 07:13:04AM -0700, Paul E. McKenney wrote:
> On Thu, Aug 17, 2017 at 02:49:09PM +0200, Ingo Molnar wrote:
> > 
> > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > 
> > > > this change - or can I pick this up into the scheduler tree?
> > > 
> > > Timely question!  ;-)
> > > 
> > > My current plan is to send you a pull request like the following later
> > > today, Pacific Time (but rebased adding Steve Rostedt's Reviewed-by).
> > > This patch is on one of the branches, currently v4.13-rc2..93d8d7a12090
> > > ("arch: Remove spin_unlock_wait() arch-specific definitions") in my
> > > -rcu tree.
> > > 
> > > Ah, and v4.13-rc2..7391304c4959 ("membarrier: Expedited private command")
> > > is mostly outside of RCU as well.
> > > 
> > > Since I will be rebasing and remerging anyway, if you would prefer that I
> > > split the spin_unlock_wait() and/or misc branches out, I am happy to do so.
> > > If I don't hear otherwise, though, I will send all seven branches using
> > > my usual approach.
> > > 
> > > So, if you want something different than my usual approach, please just
> > > let me know!
> > 
> > No, all branches together sounds good to me!
> 
> Very good, will do!
> 
> > If you are rebasing anyway, here are some (very minor) commit title nits I noticed:
> > 
> > >       swait: add idle variants which don't contribute to load average
> > >       rcu: use idle versions of swait to make idle-hack clear
> > 
> > Capitalization.
> 
> Will fix!  Believe it or not, I looked for these...  :-/
> 
> > >       membarrier: Expedited private command
> > 
> > Should start with a verb.
> 
> OK, something like "Provide expedited private command".
> 
> > >       doc: RCU documentation update
> > 
> >   doc: Update RCU documentation
> > 
> > ?
> 
> Works for me!
> 
> > >       doc: No longer allowed to use rcu_dereference on non-pointers
> > 
> >   doc: Describe that it is no longer allowed to use rcu_dereference() on non-pointers
> > 
> > ?
> 
> Will add a real commit log.
> 
> > >       torture: Add --kconfig argument to kvm.sh
> > >       rcutorture: Don't wait for kernel when all builds fail
> > 
> > Is there a difference between 'torture: ' and 'rcutorture: ' prefixes?
> 
> Yes, rcutorture is specific to RCU, while torture would also affect
> locktorture.
> 
> Ah, and if I am delaying the cond_resched() patch, I need to retest,
> which means I will send you the pull request tomorrow or Monday, depending
> on how the testing goes.

And here is the updated prototype pull request, FYI.  Again, moving the
cond_resched() patch requires retesting, and if all goes well, I will
send you the official pull request tomorrow morning, Pacific Time.

							Thanx, Paul

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

The following changes since commit 520eccdfe187591a51ea9ab4c1a024ae4d0f68d9:

  Linux 4.13-rc2 (2017-07-23 16:15:17 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 656e7c0c0a2e8d899f87fd7f081ea7a711146604

for you to fetch changes up to 656e7c0c0a2e8d899f87fd7f081ea7a711146604:

  Merge branches 'doc.2017.08.17a', 'fixes.2017.08.17a', 'hotplug.2017.07.25b', 'misc.2017.08.17a', 'spin_unlock_wait_no.2017.08.17a', 'srcu.2017.07.27c' and 'torture.2017.07.24c' into HEAD (2017-08-17 08:10:04 -0700)

----------------------------------------------------------------
Joe Perches (1):
      module: Fix pr_fmt() bug for header use of printk

Luis R. Rodriguez (2):
      swait: Add idle variants which don't contribute to load average
      rcu: Use idle versions of swait to make idle-hack clear

Manfred Spraul (1):
      net/netfilter/nf_conntrack_core: Fix net_conntrack_lock()

Masami Hiramatsu (1):
      rcu/tracing: Set disable_rcu_irq_enter on rcu_eqs_exit()

Mathieu Desnoyers (1):
      membarrier: Provide expedited private command

Oleg Nesterov (1):
      task_work: Replace spin_unlock_wait() with lock/unlock pair

Paul E. McKenney (55):
      documentation: Fix relation between nohz_full and rcu_nocbs
      init_task: Remove redundant INIT_TASK_RCU_TREE_PREEMPT() macro
      srcu: Move rcu_scheduler_starting() from Tiny RCU to Tiny SRCU
      rcutorture: Remove obsolete SRCU-C.boot
      srcu: Make process_srcu() be static
      rcutorture: Move SRCU status printing to SRCU implementations
      rcutorture: Print SRCU lock/unlock totals
      rcu: Remove CONFIG_TASKS_RCU ifdef from rcuperf.c
      rcutorture: Select CONFIG_PROVE_LOCKING for Tiny SRCU scenario
      torture: Add --kconfig argument to kvm.sh
      rcutorture: Don't wait for kernel when all builds fail
      rcutorture: Enable SRCU readers from timer handler
      rcutorture: Place event-traced strings into trace buffer
      rcutorture: Use nr_cpus rather than maxcpus to limit test size
      rcutorture: Add task's CPU for rcutorture writer stalls
      rcutorture: Eliminate unused ts_rem local from rcu_trace_clock_local()
      rcu: Add last-CPU to GP-kthread starvation messages
      rcutorture: Invoke call_rcu() from timer handler
      rcu: Use timer as backstop for NOCB deferred wakeups
      atomics: Revert addition of comment header to spin_unlock_wait()
      rcu: Migrate callbacks earlier in the CPU-offline timeline
      rcu: Make expedited GPs correctly handle hardware CPU insertion
      torture: Fix typo suppressing CPU-hotplug statistics
      rcu: Remove orphan/adopt event-tracing fields
      rcu: Check for NOCB CPUs and empty lists earlier in CB migration
      rcu: Make NOCB CPUs migrate CBs directly from outgoing CPU
      rcu: Advance outgoing CPU's callbacks before migrating them
      rcu: Eliminate rcu_state ->orphan_lock
      rcu: Advance callbacks after migration
      rcu: Localize rcu_state ->orphan_pend and ->orphan_done
      rcu: Remove unused RCU list functions
      rcu: Move callback-list warning to irq-disable region
      srcu: Provide ordering for CPU not involved in grace period
      sched: Replace spin_unlock_wait() with lock/unlock pair
      rcu: Drive TASKS_RCU directly off of PREEMPT
      rcu: Create reasonable API for do_exit() TASKS_RCU processing
      rcu: Add TPS() to event-traced strings
      rcu: Move rcu.h to new trivial-function style
      rcu: Add event tracing to ->gp_tasks update at GP start
      rcu: Add TPS() protection for _rcu_barrier_trace strings
      rcu: Add assertions verifying blocked-tasks list
      rcu: Add warning to rcu_idle_enter() for irqs enabled
      rcu: Remove exports from rcu_idle_exit() and rcu_idle_enter()
      doc: Update RCU documentation
      doc: Update memory-barriers.txt for read-to-write dependencies
      doc: Add RCU files to docbook-generation files
      doc: No longer allowed to use rcu_dereference on non-pointers
      doc: Set down RCU's scheduling-clock-interrupt needs
      completion: Replace spin_unlock_wait() with lock/unlock pair
      exit: Replace spin_unlock_wait() with lock/unlock pair
      ipc: Replace spin_unlock_wait() with lock/unlock pair
      drivers/ata: Replace spin_unlock_wait() with lock/unlock pair
      locking: Remove spin_unlock_wait() generic definitions
      arch: Remove spin_unlock_wait() arch-specific definitions
      Merge branches 'doc.2017.08.17a', 'fixes.2017.08.17a', 'hotplug.2017.07.25b', 'misc.2017.08.17a', 'spin_unlock_wait_no.2017.08.17a', 'srcu.2017.07.27c' and 'torture.2017.07.24c' into HEAD

Peter Zijlstra (Intel) (1):
      rcu: Make rcu_idle_enter() rely on callers disabling irqs

Tejun Heo (1):
      sched: Allow migrating kthreads into online but inactive CPUs

 .../RCU/Design/Requirements/Requirements.html      | 130 +++++++++++
 Documentation/RCU/checklist.txt                    | 121 +++++++----
 Documentation/RCU/rcu.txt                          |   9 +-
 Documentation/RCU/rcu_dereference.txt              |  61 ++----
 Documentation/RCU/rcubarrier.txt                   |   5 +
 Documentation/RCU/torture.txt                      |  20 +-
 Documentation/RCU/whatisRCU.txt                    |   5 +-
 Documentation/admin-guide/kernel-parameters.txt    |   7 +-
 Documentation/core-api/kernel-api.rst              |  49 +++++
 Documentation/memory-barriers.txt                  |  41 ++--
 MAINTAINERS                                        |   2 +-
 arch/alpha/include/asm/spinlock.h                  |   5 -
 arch/arc/include/asm/spinlock.h                    |   5 -
 arch/arm/include/asm/spinlock.h                    |  16 --
 arch/arm64/include/asm/spinlock.h                  |  58 +----
 arch/arm64/kernel/process.c                        |   2 +
 arch/blackfin/include/asm/spinlock.h               |   5 -
 arch/blackfin/kernel/module.c                      |  39 ++--
 arch/hexagon/include/asm/spinlock.h                |   5 -
 arch/ia64/include/asm/spinlock.h                   |  21 --
 arch/m32r/include/asm/spinlock.h                   |   5 -
 arch/metag/include/asm/spinlock.h                  |   5 -
 arch/mn10300/include/asm/spinlock.h                |   5 -
 arch/parisc/include/asm/spinlock.h                 |   7 -
 arch/powerpc/include/asm/spinlock.h                |  33 ---
 arch/s390/include/asm/spinlock.h                   |   7 -
 arch/sh/include/asm/spinlock-cas.h                 |   5 -
 arch/sh/include/asm/spinlock-llsc.h                |   5 -
 arch/sparc/include/asm/spinlock_32.h               |   5 -
 arch/tile/include/asm/spinlock_32.h                |   2 -
 arch/tile/include/asm/spinlock_64.h                |   2 -
 arch/tile/lib/spinlock_32.c                        |  23 --
 arch/tile/lib/spinlock_64.c                        |  22 --
 arch/xtensa/include/asm/spinlock.h                 |   5 -
 drivers/ata/libata-eh.c                            |   8 +-
 include/asm-generic/qspinlock.h                    |  14 --
 include/linux/init_task.h                          |   8 +-
 include/linux/rcupdate.h                           |  15 +-
 include/linux/rcutiny.h                            |   8 +-
 include/linux/sched.h                              |   5 +-
 include/linux/spinlock.h                           |  31 ---
 include/linux/spinlock_up.h                        |   6 -
 include/linux/srcutiny.h                           |  13 ++
 include/linux/srcutree.h                           |   3 +-
 include/linux/swait.h                              |  55 +++++
 include/trace/events/rcu.h                         |   7 +-
 include/uapi/linux/membarrier.h                    |  23 +-
 ipc/sem.c                                          |   3 +-
 kernel/Makefile                                    |   1 -
 kernel/cpu.c                                       |   1 +
 kernel/exit.c                                      |  10 +-
 kernel/locking/qspinlock.c                         | 117 ----------
 kernel/membarrier.c                                |  70 ------
 kernel/rcu/Kconfig                                 |   3 +-
 kernel/rcu/rcu.h                                   | 128 ++---------
 kernel/rcu/rcu_segcblist.c                         | 108 +++-------
 kernel/rcu/rcu_segcblist.h                         |  28 +--
 kernel/rcu/rcuperf.c                               |  17 +-
 kernel/rcu/rcutorture.c                            |  83 +++----
 kernel/rcu/srcutiny.c                              |   8 +
 kernel/rcu/srcutree.c                              |  50 ++++-
 kernel/rcu/tiny.c                                  |   2 -
 kernel/rcu/tiny_plugin.h                           |  47 ----
 kernel/rcu/tree.c                                  | 213 ++++++++----------
 kernel/rcu/tree.h                                  |  15 +-
 kernel/rcu/tree_exp.h                              |   2 +-
 kernel/rcu/tree_plugin.h                           | 238 ++++++++++++---------
 kernel/rcu/update.c                                |  18 +-
 kernel/sched/Makefile                              |   1 +
 kernel/sched/completion.c                          |  11 +-
 kernel/sched/core.c                                |  38 +++-
 kernel/sched/membarrier.c                          | 152 +++++++++++++
 kernel/task_work.c                                 |   8 +-
 kernel/torture.c                                   |   2 +-
 net/netfilter/nf_conntrack_core.c                  |  52 +++--
 .../selftests/rcutorture/bin/config_override.sh    |  61 ++++++
 .../testing/selftests/rcutorture/bin/functions.sh  |  27 ++-
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |  11 +-
 .../selftests/rcutorture/bin/kvm-test-1-run.sh     |  58 ++---
 tools/testing/selftests/rcutorture/bin/kvm.sh      |  34 ++-
 .../selftests/rcutorture/configs/rcu/BUSTED.boot   |   2 +-
 .../selftests/rcutorture/configs/rcu/SRCU-C.boot   |   1 -
 .../selftests/rcutorture/configs/rcu/SRCU-u        |   3 +-
 .../selftests/rcutorture/configs/rcu/TREE01.boot   |   2 +-
 .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt  |   2 +-
 85 files changed, 1237 insertions(+), 1323 deletions(-)
 delete mode 100644 kernel/membarrier.c
 delete mode 100644 kernel/rcu/tiny_plugin.h
 create mode 100644 kernel/sched/membarrier.c
 create mode 100755 tools/testing/selftests/rcutorture/bin/config_override.sh
 delete mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-C.boot

  reply	other threads:[~2017-08-17 15:32 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-24 22:12 [PATCH tip/core/rcu 0/9] Remove spin_unlock_wait() Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 1/9] net/netfilter/nf_conntrack_core: Fix net_conntrack_lock() Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 2/9] task_work: Replace spin_unlock_wait() with lock/unlock pair Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 3/9] sched: " Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 4/9] completion: " Paul E. McKenney
2017-08-15 16:16   ` [PATCH v5 " Paul E. McKenney
2017-08-16 15:22     ` Steven Rostedt
2017-08-17 15:07       ` Paul E. McKenney
2017-08-17  8:26     ` Ingo Molnar
2017-08-17 12:30       ` Paul E. McKenney
2017-08-17 12:49         ` Ingo Molnar
2017-08-17 14:13           ` Paul E. McKenney
2017-08-17 15:32             ` Paul E. McKenney [this message]
2017-07-24 22:13 ` [PATCH tip/core/rcu 5/9] exit: " Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 6/9] ipc: " Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 7/9] drivers/ata: " Paul E. McKenney
2017-07-24 22:13   ` Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 8/9] locking: Remove spin_unlock_wait() generic definitions Paul E. McKenney
2017-07-24 22:13 ` [PATCH tip/core/rcu 9/9] arch: Remove spin_unlock_wait() arch-specific definitions Paul E. McKenney
2017-07-24 22:13   ` Paul E. McKenney
2017-07-31 22:57 ` [PATCH v2 tip/core/rcu 0/10] Remove spin_unlock_wait() Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 01/10] atomics: Revert addition of comment header to spin_unlock_wait() Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 02/10] net/netfilter/nf_conntrack_core: Fix net_conntrack_lock() Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 03/10] task_work: Replace spin_unlock_wait() with lock/unlock pair Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 04/10] sched: " Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 05/10] completion: " Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 06/10] exit: " Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 07/10] ipc: " Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 08/10] drivers/ata: " Paul E. McKenney
2017-07-31 22:58     ` Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 09/10] locking: Remove spin_unlock_wait() generic definitions Paul E. McKenney
2017-07-31 22:58   ` [PATCH v2 tip/core/rcu 10/10] arch: Remove spin_unlock_wait() arch-specific definitions Paul E. McKenney
2017-07-31 22:58     ` Paul E. McKenney

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=20170817153235.GA16352@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jiangshanlai@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=parri.andrea@gmail.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.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.