All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Amit Shah <amit.shah@redhat.com>
Cc: linux-kernel@vger.kernel.org, riel@redhat.com, mingo@kernel.org,
	laijs@cn.fujitsu.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
	josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de,
	peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com,
	edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com,
	oleg@redhat.com, sbw@mit.edu
Subject: Re: [PATCH tip/core/rcu 1/2] rcu: Parallelize and economize NOCB kthread wakeups
Date: Tue, 12 Aug 2014 14:44:05 -0700	[thread overview]
Message-ID: <20140812214405.GC3106@linux.vnet.ibm.com> (raw)
In-Reply-To: <20140812214151.GB3106@linux.vnet.ibm.com>

On Tue, Aug 12, 2014 at 02:41:51PM -0700, Paul E. McKenney wrote:
> On Tue, Aug 12, 2014 at 02:39:36PM -0700, Paul E. McKenney wrote:
> > On Tue, Aug 12, 2014 at 09:06:21AM -0700, Paul E. McKenney wrote:
> > > On Tue, Aug 12, 2014 at 11:03:21AM +0530, Amit Shah wrote:
> > 
> > [ . . . ]
> > 
> > > > I know of only virtio-console doing this (via userspace only,
> > > > though).
> > > 
> > > As in userspace within the guest?  That would not work.  The userspace
> > > that the qemu is running in might.  There is a way to extract ftrace info
> > > from crash dumps, so one approach would be "sendkey alt-sysrq-c", then
> > > pull the buffer from the resulting dump.  For all I know, there might also
> > > be some script that uses the qemu "x" command to get at the ftrace buffer.
> > > 
> > > Again, I cannot reproduce this, and I have been through the code several
> > > times over the past few days, and am not seeing it.  I could start
> > > sending you random diagnostic patches, but it would be much better if
> > > we could get the trace data from the failure.
> > 
> > Hearing no objections, random patch #1.  The compiler could in theory
> > cause trouble without this patch, so there is some possibility that
> > it is a fix.
> 
> #2...  This would have been a problem without the earlier patch, but
> who knows?  (#1 moved from theoretically possible but not on x86 to
> maybe on x86 given a sufficiently malevolent compiler with the
> patch that you located with bisection.)

#3...  This one is theoretically possible, but not on any system that has
a full barrier on lock acquisition.  This code did not exist before the
patch you located via bisection, but on the other hand, given that you
were running only two CPUs, it should be dead code anyway.  But who knows?

							Thanx, Paul

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

diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 1da605740e8d..70bff565dab6 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -2314,6 +2314,7 @@ wait_again:
 		atomic_long_add(rdp->nocb_gp_count, &rdp->nocb_follower_count);
 		atomic_long_add(rdp->nocb_gp_count_lazy,
 				&rdp->nocb_follower_count_lazy);
+		smp_mb__after_atomic(); /* Store *tail before wakeup. */
 		if (rdp != my_rdp && tail == &rdp->nocb_follower_head) {
 			/*
 			 * List was empty, wake up the follower.


  reply	other threads:[~2014-08-12 21:44 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-07 22:48 [PATCH tip/core/rcu 0/2] Callback-offloading changes for 3.17 Paul E. McKenney
2014-07-11 13:35 ` [PATCH tip/core/rcu 1/2] rcu: Parallelize and economize NOCB kthread wakeups Paul E. McKenney
2014-07-11 13:35   ` [PATCH tip/core/rcu 2/2] rcu: Don't offload callbacks unless specifically requested Paul E. McKenney
2014-07-11 13:47     ` Frederic Weisbecker
2014-07-11 15:28       ` Paul E. McKenney
2014-08-08  8:40   ` [PATCH tip/core/rcu 1/2] rcu: Parallelize and economize NOCB kthread wakeups Amit Shah
2014-08-08 16:25     ` Paul E. McKenney
2014-08-08 17:37       ` Amit Shah
2014-08-08 18:18         ` Paul E. McKenney
2014-08-08 18:34           ` Amit Shah
2014-08-08 21:43             ` Paul E. McKenney
2014-08-08 21:46               ` Paul E. McKenney
2014-08-11  7:13                 ` Amit Shah
2014-08-11 16:28                   ` Paul E. McKenney
2014-08-11 19:41                     ` Amit Shah
2014-08-11 20:11                       ` Paul E. McKenney
2014-08-11 20:18                         ` Amit Shah
2014-08-11 20:34                           ` Paul E. McKenney
2014-08-12  3:45                             ` Paul E. McKenney
2014-08-12  5:33                               ` Amit Shah
2014-08-12 16:06                                 ` Paul E. McKenney
2014-08-12 21:39                                   ` Paul E. McKenney
2014-08-12 21:41                                     ` Paul E. McKenney
2014-08-12 21:44                                       ` Paul E. McKenney [this message]
2014-08-13  5:44                                       ` Amit Shah
2014-08-13 13:00                                         ` Paul E. McKenney
2014-08-13 14:18                                           ` Paul E. McKenney
2014-08-15  5:24                                           ` Amit Shah
2014-08-15 15:04                                             ` Paul E. McKenney
2014-08-18 17:53                                               ` Amit Shah
2014-08-19  4:01                                                 ` Paul E. McKenney
2014-08-22 12:24                                                   ` Amit Shah
2014-08-22 12:36                                                     ` Amit Shah
2014-08-22 12:56                                                       ` Amit Shah
2014-08-22 14:48                                                         ` Paul E. McKenney
2014-08-22 17:14                                                           ` Amit Shah
2014-08-22 17:37                                                             ` Amit Shah
2014-08-22 21:53                                                             ` Paul E. McKenney
2014-08-22 21:57                                                               ` Paul E. McKenney
2014-08-22 14:43                                                     ` Paul E. McKenney
2014-08-12  5:27                             ` Amit Shah
2014-08-12 16:08                               ` Paul E. McKenney
2014-08-23  7:43 Pranith Kumar
2014-08-23 16:51 ` Paul E. McKenney
2014-08-24  0:26   ` Pranith Kumar
2014-08-24  3:23     ` Paul E. McKenney
2014-08-24  3:39       ` Pranith Kumar
2014-08-24 14:36         ` Paul E. McKenney
2014-08-27  4:43 ` Amit Shah
2014-08-27 16:21   ` Paul E. McKenney
2014-08-27 16:43     ` Pranith Kumar
2014-08-27 17:08       ` 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=20140812214405.GC3106@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=amit.shah@redhat.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=dvhart@linux.intel.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=niv@us.ibm.com \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=sbw@mit.edu \
    --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 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.