RCU Archive on lore.kernel.org
 help / color / Atom feed
From: Zhouyi Zhou <zhouzhouyi@gmail.com>
To: paulmck@kernel.org
Cc: rcu@vger.kernel.org, neeraju@codeaurora.org
Subject: Re: [PATCH] rcu: remove surplus instrumentation_end in rcu_nmi_enter
Date: Wed, 13 Jan 2021 11:46:32 +0800
Message-ID: <CAABZP2yMz9VGaYTnoQ2x1W8OrEQvtrUOO5nYj5pJfQPL-1e-MA@mail.gmail.com> (raw)
In-Reply-To: <20210112175055.GI2743@paulmck-ThinkPad-P72>

Thank Paul for your encouragement and valuable advice

I achieve great self improvement in studying and participating Linux RCU

Also thank Neeraj for mutual interest in Linux RCU, your contribution
makes me believe
that even a small enhancement of code can still attract interest and
draw favorable attention
from peers.

On Wed, Jan 13, 2021 at 1:50 AM Paul E. McKenney <paulmck@kernel.org> wrote:
> Good catch, applied, thank you!  As usual, I edited a bit, so please
> check below to see if I messed anything up.
> I did add Neeraj Upadhyay's Reported-by because he noted this, though you
> beat him with a public posting, though mostly because I asked him whether
> he could make this happen.  I also added the Fixes, but could you please
> do that in the future?  You can use "git blame" or either "git log" and
> "gitk" with appropriate options to find the offending commit.
>                                                         Thanx, Paul
> ------------------------------------------------------------------------
> commit 3f91ff7fd4f76e7eb48bad79666c466bc3530324
> Author: Zhouyi Zhou <zhouzhouyi@gmail.com>
> Date:   Mon Jan 11 09:08:59 2021 +0800
>     rcu: Remove spurious instrumentation_end() in rcu_nmi_enter()
>     In rcu_nmi_enter(), there is an erroneous instrumentation_end() in the
>     second branch of the "if" statement.  Oddly enough, "objtool check -f
>     vmlinux.o" fails to complain because it is unable to correctly cover
>     all cases.  Instead, objtool visits the third branch first, which marks
>     following trace_rcu_dyntick() as visited.  This commit therefore removes
>     the spurious instrumentation_end().
>     Fixes: 04b25a495bd6 ("rcu: Mark rcu_nmi_enter() call to rcu_cleanup_after_idle() noinstr")
>     Reported-by Neeraj Upadhyay <neeraju@codeaurora.org>
>     Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
>     Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index 63c6dba..e04e336 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -1050,7 +1050,6 @@ noinstr void rcu_nmi_enter(void)
>         } else if (!in_nmi()) {
>                 instrumentation_begin();
>                 rcu_irq_enter_check_tick();
> -               instrumentation_end();
>         } else  {
>                 instrumentation_begin();
>         }

      reply index

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-11  1:08 Zhouyi Zhou
2021-01-12 17:50 ` Paul E. McKenney
2021-01-13  3:46   ` Zhouyi Zhou [this message]

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAABZP2yMz9VGaYTnoQ2x1W8OrEQvtrUOO5nYj5pJfQPL-1e-MA@mail.gmail.com \
    --to=zhouzhouyi@gmail.com \
    --cc=neeraju@codeaurora.org \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

RCU Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/rcu/0 rcu/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 rcu rcu/ https://lore.kernel.org/rcu \
	public-inbox-index rcu

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git