linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krister Johansen <kjlx@templeofstupid.com>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Krister Johansen <kjlx@templeofstupid.com>,
	linux-kernel@vger.kernel.org, mingo@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, bobby.prani@gmail.com,
	stable@vger.kernel.org, gregkh@linuxfoundation.org
Subject: Re: [PATCH tip/core/rcu 45/88] rcu: Add memory barriers for NOCB leader wakeup
Date: Thu, 8 Jun 2017 20:24:35 -0700	[thread overview]
Message-ID: <20170609032435.GE2553@templeofstupid.com> (raw)
In-Reply-To: <20170608234743.GE3721@linux.vnet.ibm.com>

On Thu, Jun 08, 2017 at 04:47:43PM -0700, Paul E. McKenney wrote:
> On Thu, Jun 08, 2017 at 02:28:14PM -0700, Krister Johansen wrote:
> > On Thu, Jun 08, 2017 at 01:55:00PM -0700, Paul E. McKenney wrote:
> > > Interesting!  This is the first that I have heard that this was anything
> > > other than a theoretical bug.  To the comment in your second URL, it is
> > > wise to recall that a seismologist was in fact arrested for failing to
> > > predict an earthquake.  Later acquitted/pardoned/whatever, but arrested
> > > nonetheless.  ;-)
> > 
> > Point taken.  I do realize that we all make mistakes, and certainly I do
> > too.
> 
> Indeed!  Let's just say that the author of that email will have no
> trouble returning the favor, and sooner rather than later.  ;-)

No doubt he's polishing up an extra small extra tight pair of handcuffs
with my name on them.

> >       Perhaps I should have said that my survey of current callers of
> > swake_up() was enough to convince me that I didn't have an immediate
> > problem elsewhere, but that I'm not familiar enough with the code base
> > to make that statement with a lot of authority.  The concern being that if
> > the patch came from RT-linux where the barrier was present in
> > swake_up(), are there other places where swake_up() callers still assume
> > this is being handled on their behalf?
> > 
> > As part of this, I also pondered whether I should add a comment around
> > swake_up(), similar to what's already there for waitqueue_active.
> > I wasn't sure how subtle this is for other consumers, though.
> 
> In my case, I assume I need barriers for swake_up(), which is why I
> found this bug by inspection.  Still, I wouldn't mind a comment.
> Others might have other opinions.

Since you don't mind, I've prepared a small patch for those comments.  I'll
send that in a separate thread.

Thanks again,

-K

  reply	other threads:[~2017-06-09  3:24 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-25 21:59 [PATCH tip/core/rcu 0/88] Commits for 4.13 Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 01/88] rcutorture: Add lockdep to one of the SRCU scenarios Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 02/88] rcutorture: Add three-level tree test for Tree SRCU Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 03/88] rcutorture: Fix bug in reporting Kconfig mis-settings Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 04/88] rcutorture: Add a scenario for Tiny SRCU Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 05/88] rcutorture: Add a scenario for Classic SRCU Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 06/88] rcu: Prevent rcu_barrier() from starting needless grace periods Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 07/88] rcutorture: Correctly handle CONFIG_RCU_TORTURE_TEST_* options Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 08/88] rcutorture: Update test scenarios based on new Kconfig dependencies Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 09/88] srcu: Eliminate possibility of destructive counter overflow Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 10/88] rcu: Complain if blocking in preemptible RCU read-side critical section Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 11/88] rcuperf: Defer expedited/normal check to end of test Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 12/88] rcuperf: Remove conflicting Kconfig options Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 13/88] rcu: Remove obsolete reference to synchronize_kernel() Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 14/88] rcuperf: Add ability to performance-test call_rcu() and friends Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 15/88] rcuperf: Add a Kconfig-fragment file for Classic SRCU Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 16/88] rcu: Make sync_rcu_preempt_exp_done() return bool Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 17/88] checkpatch: Remove checks for expedited grace periods Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 18/88] rcuperf: Add test for dynamically initialized srcu_struct Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 19/88] doc/atomic_ops: Clarify smp_mb__{before,after}_atomic() Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 20/88] atomics: Add header comment so spin_unlock_wait() Paul E. McKenney
2017-06-10 15:02   ` Andrea Parri
2017-05-25 21:58 ` [PATCH tip/core/rcu 21/88] docs: Fix typo in Documentation/memory-barriers.txt Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 22/88] rcuperf: Add the ability to test tiny RCU flavors Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 23/88] srcu: Make Classic and Tree SRCU announce themselves at bootup Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 24/88] rcutorture: Reduce CPUs dedicated to testing Classic SRCU Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 25/88] srcu: Shrink Tiny SRCU a bit more Paul E. McKenney
2017-05-25 21:58 ` [PATCH tip/core/rcu 26/88] rcuperf: Set more user-friendly defaults Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 27/88] srcu-cbmc: Use /usr/bin/awk instead of /bin/awk Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 28/88] rcuperf: Add writer_holdoff boot parameter Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 29/88] rcutorture: Add "git diff" output to testid.txt file Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 30/88] srcu: Document auto-expediting requirement Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 31/88] doc: Take tail recursion into account in RCU requirements Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 32/88] rcu: Add preemptibility checks in rcu_sched_qs() and rcu_bh_qs() Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 33/88] rcu: Print out rcupdate.c non-default boot-time settings Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 34/88] rcu: Update rcu_bootup_announce_oddness() Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 35/88] srcu: Make exp_holdoff module parameter be static Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 36/88] srcu: Print non-default exp_holdoff values at boot time Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 37/88] rcu: Add lockdep_assert_held() teeth to tree.c Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 38/88] rcu: Add lockdep_assert_held() teeth to tree_plugin.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 39/88] srcu: Make SRCU be once again optional Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 40/88] srcu: Shrink Tiny SRCU a bit Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 41/88] srcu: Add DEBUG_OBJECTS_RCU_HEAD functionality Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 42/88] rcu: Make synchronize_rcu_mult() check for duplicates Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 43/88] sched: Rely on synchronize_rcu_mult() de-duplication Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 44/88] rcu: Use RCU_NOCB_WAKE rather than RCU_NOGP_WAKE Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 45/88] rcu: Add memory barriers for NOCB leader wakeup Paul E. McKenney
2017-06-08 20:11   ` Krister Johansen
2017-06-08 20:55     ` Paul E. McKenney
2017-06-08 21:28       ` Krister Johansen
2017-06-08 23:47         ` Paul E. McKenney
2017-06-09  3:24           ` Krister Johansen [this message]
2017-05-25 21:59 ` [PATCH tip/core/rcu 46/88] torture: Add --kconfig argument to kvm.sh Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 47/88] rcu: Flag need for rcu_node_tree.h and rcu_segcblist.h visibility Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 48/88] rcutorture: Don't wait for kernel when all builds fail Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 49/88] rcu: Move docbook comments out of rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 50/88] rcu: Move rcu_expedited and rcu_normal externs from rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 51/88] rcu: Move expediting-related access/control out of rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 52/88] rcu: Move torture-related definitions from rcupdate.h to rcu.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 53/88] rcu: Remove UINT_CMP_GE() and UINT_CMP_LT() Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 54/88] rcu: Move rcupdate.h to new empty-function style Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 55/88] rcu: Eliminate the unused __rcu_is_watching() function Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 56/88] rcu: Move the RCU_SCHEDULER_ definitions from rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 57/88] rcu: Remove linux/debugobjects.h " Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 58/88] rcu: Improve __call_rcu() debug-objects error message Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 59/88] rcu: Move rcu_is_nocb_cpu() from rcupdate.h to rcu.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 60/88] rcu: Move rcu_ftrace_dump() " Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 61/88] rcu: move rcupdate.h to the new true/false-function style Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 62/88] rcu: Move torture-related functions out of rcutiny.h and rcutree.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 63/88] rcu: Move rcu_request_urgent_qs_task() " Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 64/88] rcu: Move rcutiny.h to new empty-function style Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 65/88] rcu: move rcutiny.h to the new true/false-function style Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 66/88] srcu: Prevent sdp->srcu_gp_seq_needed counter wrap Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 67/88] srcu: Shrink srcu.h by moving docbook and private function Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 68/88] srcu: Apply trivial callback lists to shrink Tiny SRCU Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 69/88] lockdep: Use consistent printing primitives Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 70/88] rcu: Refactor #includes from include/linux/rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 71/88] rcu: Convert rnp->lock wrappers to macros for SRCU use Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 72/88] rcu: Move rnp->lock wrappers " Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 73/88] srcu: Use rnp->lock wrappers to replace explicit memory barriers Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 74/88] rcu: Remove *_SLOW_* Kconfig options Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 75/88] rcu: Remove the RCU_KTHREAD_PRIO Kconfig option Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 76/88] rcu: Remove nohz_full full-system-idle state machine Paul E. McKenney
2017-05-25 23:03   ` Linus Torvalds
2017-05-25 23:42     ` Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 77/88] rcu: Remove #ifdef moving rcu_end_inkernel_boot from rcupdate.h Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 78/88] rcu: Remove typecheck() from RCU locking wrapper functions Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 79/88] rcu: Remove the now-obsolete PROVE_RCU_REPEATEDLY Kconfig option Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 80/88] rcu: Remove SPARSE_RCU_POINTER " Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 81/88] srcu: Fix rcutorture-statistics typo Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 82/88] srcu: Remove Classic SRCU Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 83/88] rcu: Remove debugfs tracing Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 84/88] rcu: Eliminate NOCBs CPU-state Kconfig options Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 85/88] rcu: Move RCU non-debug Kconfig options to kernel/rcu Paul E. McKenney
2017-05-25 21:59 ` [PATCH tip/core/rcu 86/88] rcu: Move RCU debug " Paul E. McKenney
2017-05-25 22:00 ` [PATCH tip/core/rcu 87/88] rcu: Remove event tracing from Tiny RCU Paul E. McKenney
2017-05-25 22:00 ` [PATCH tip/core/rcu 88/88] rcu: Remove RCU CPU stall warnings " Paul E. McKenney
2017-06-09 13:52 ` [PATCH tip/core/rcu 0/88] Commits for 4.13 Steven Rostedt
2017-06-09 16:24   ` Paul E. McKenney
2017-06-09 16:39     ` Steven Rostedt
2017-06-09 17:20       ` Paul E. McKenney
2017-06-09 17:33         ` Steven Rostedt
2017-06-09 17:57           ` Paul E. McKenney
2017-06-09 18:01             ` 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=20170609032435.GE2553@templeofstupid.com \
    --to=kjlx@templeofstupid.com \
    --cc=akpm@linux-foundation.org \
    --cc=bobby.prani@gmail.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jiangshanlai@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).