From: Joel Fernandes <joel@joelfernandes.org>
To: "Paul E. McKenney" <paulmck@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org,
Josh Triplett <josh@joshtriplett.org>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
rcu@vger.kernel.org, Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [RFC v2] rcu/tree: Try to invoke_rcu_core() if in_irq() during unlock
Date: Wed, 21 Aug 2019 11:46:46 -0400 [thread overview]
Message-ID: <20190821154646.GG147977@google.com> (raw)
In-Reply-To: <20190821153957.GG28441@linux.ibm.com>
On Wed, Aug 21, 2019 at 08:39:57AM -0700, Paul E. McKenney wrote:
> On Wed, Aug 21, 2019 at 10:56:17AM -0400, Joel Fernandes wrote:
[snip]
> > I think one reason could be, in_irq() is false when the timer callback
> > executes, since the timer callback is executing after a grace-period. The
> > stack is as follows:
> >
> > Any reason why we cannot both test for call_rcu() and execute the RCU
> > callback from the timer hardirq handler?
> >
> > In fact, I guess on use_nosoftirq systems, the callback will not even run
> > in softirq context.
> >
> > [ 20.553361] => rcu_torture_timer_cb
> > [ 20.553361] => rcu_do_batch
> > [ 20.553361] => rcu_core
> > [ 20.553361] => __do_softirq
> > [ 20.553361] => do_softirq_own_stack
> > [ 20.553361] => do_softirq.part.16
> > [ 20.553361] => __local_bh_enable_ip
> > [ 20.553361] => rcutorture_one_extend
> > [ 20.553361] => rcu_torture_one_read
> > [ 20.553361] => rcu_torture_reader
> > [ 20.553361] => kthread
> > [ 20.553361] => ret_from_fork
>
> Well, it is rcu_read_lock() and rcu_read_unlock() that matters
True!
> for this case rather than the callback. But yes, given in_irq(),
> rcu_read_lock() and rcu_read_unlock() would need to have executed
> from a hardware interrupt handler. And would need to get one of the
> ->rcu_read_lock_special bits set somehow.
>
> But you can use smp_call_function() to invoke a function that runs in
> hardware interrupt handler context, and you can do this within either
> rcuperf or rcutorture.
>
> And yes, this line of reasoning did inform at least some of my skepticism
> surrounding your initial patch, in case you were wondering about some
> of my earlier questions. ;-)
Sounds great, I will try to modify the tests to trigger this case and also
look into your other questions. Thanks!!
- Joel
next prev parent reply other threads:[~2019-08-21 15:47 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-18 21:49 [RFC v2] rcu/tree: Try to invoke_rcu_core() if in_irq() during unlock Joel Fernandes (Google)
2019-08-18 22:12 ` Paul E. McKenney
2019-08-18 22:32 ` Joel Fernandes
2019-08-18 22:35 ` Joel Fernandes
2019-08-18 23:31 ` Paul E. McKenney
2019-08-18 23:38 ` Joel Fernandes
2019-08-19 1:21 ` Paul E. McKenney
2019-08-19 1:41 ` Joel Fernandes
2019-08-19 1:46 ` Joel Fernandes
2019-08-19 2:29 ` Paul E. McKenney
2019-08-19 12:57 ` Paul E. McKenney
2019-08-19 14:33 ` Paul E. McKenney
2019-08-19 15:41 ` Paul E. McKenney
2019-08-19 16:25 ` Joel Fernandes
2019-08-21 14:38 ` Joel Fernandes
2019-08-21 14:56 ` Joel Fernandes
2019-08-21 15:26 ` Joel Fernandes
2019-08-21 15:47 ` Paul E. McKenney
2019-08-21 15:39 ` Paul E. McKenney
2019-08-21 15:46 ` Joel Fernandes [this message]
2019-08-21 15:26 ` Paul E. McKenney
2019-08-20 0:14 ` Scott Wood
2019-08-20 1:40 ` Joel Fernandes
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=20190821154646.GG147977@google.com \
--to=joel@joelfernandes.org \
--cc=jiangshanlai@gmail.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@linux.ibm.com \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
/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.