From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Alexander Gordeev <agordeev@redhat.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] rcu: Call trace_rcu_batch_start() with enabled interrupts
Date: Wed, 11 Feb 2015 08:13:30 -0800 [thread overview]
Message-ID: <20150211161330.GH4166@linux.vnet.ibm.com> (raw)
In-Reply-To: <df4301efda0e1809d9a7f2ab2ad7bda0a69e9e4a.1423665396.git.agordeev@redhat.com>
On Wed, Feb 11, 2015 at 03:42:39PM +0100, Alexander Gordeev wrote:
> Currently trace_rcu_batch_start() is called with local
> interrupts disabled. Yet, there is no reason to do so.
>
> Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
> Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Hmmm... I am not seeing this one. As you noted in the commit log for
your earlier patch, the purpose of Tiny RCU is to be tiny, not to be
all that fast. This commit increases the size a bit (admittedly only
when CONFIG_RCU_TRACE=y), and also increases complexity a bit.
So it does not look to me to be something we want for Tiny RCU.
So what am I missing here?
Thanx, Paul
> ---
> kernel/rcu/tiny.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
> index 069742d..01e80ac 100644
> --- a/kernel/rcu/tiny.c
> +++ b/kernel/rcu/tiny.c
> @@ -166,11 +166,12 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
> const char *rn = NULL;
> struct rcu_head *next, *list;
> unsigned long flags;
> + RCU_TRACE(long qlen);
> RCU_TRACE(int cb_count = 0);
>
> /* Move the ready-to-invoke callbacks to a local list. */
> local_irq_save(flags);
> - RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1));
> + RCU_TRACE(qlen = rcp->qlen);
> list = rcp->rcucblist;
> rcp->rcucblist = *rcp->donetail;
> *rcp->donetail = NULL;
> @@ -180,6 +181,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
> local_irq_restore(flags);
>
> /* Invoke the callbacks on the local list. */
> + RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, qlen, -1));
> RCU_TRACE(rn = rcp->name);
> while (list) {
> next = list->next;
> --
> 1.8.3.1
>
next prev parent reply other threads:[~2015-02-11 16:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 14:42 [PATCH 0/3] rcu: Tweak tiny RCU Alexander Gordeev
2015-02-11 14:42 ` [PATCH 1/3] rcu: Remove unnecessary condition check in rcu_qsctr_help() Alexander Gordeev
2015-02-11 16:09 ` Paul E. McKenney
2015-02-11 14:42 ` [PATCH 2/3] rcu: Remove fast path from __rcu_process_callbacks() Alexander Gordeev
2015-02-11 16:11 ` Paul E. McKenney
2015-02-11 14:42 ` [PATCH 3/3] rcu: Call trace_rcu_batch_start() with enabled interrupts Alexander Gordeev
2015-02-11 16:13 ` Paul E. McKenney [this message]
2015-02-11 16:48 ` Alexander Gordeev
2015-02-11 17:20 ` 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=20150211161330.GH4166@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=agordeev@redhat.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox