From: Waiman Long <llong@redhat.com>
To: paulmck@kernel.org
Cc: Josh Triplett <josh@joshtriplett.org>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Joel Fernandes <joel@joelfernandes.org>,
rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
alexei.starovoitov@gmail.com, andrii@kernel.org
Subject: Re: [PATCH] rcu: Avoid unneeded function call in rcu_read_unlock()
Date: Fri, 27 Aug 2021 16:27:00 -0400 [thread overview]
Message-ID: <34cbf3f5-9485-a82d-2548-272e87033ab2@redhat.com> (raw)
In-Reply-To: <20210827183455.GP4156@paulmck-ThinkPad-P17-Gen-1>
On 8/27/21 2:34 PM, Paul E. McKenney wrote:
> On Thu, Aug 26, 2021 at 10:21:22PM -0400, Waiman Long wrote:
>> Since commit aa40c138cc8f3 ("rcu: Report QS for outermost
>> PREEMPT=n rcu_read_unlock() for strict GPs"). A real function call
>> rcu_read_unlock_strict() is added to the inlined rcu_read_unlock().
>> The rcu_read_unlock_strict() call is only needed if the performance
>> sagging CONFIG_RCU_STRICT_GRACE_PERIOD option is set. This config
>> option isn't set for most production kernels while the function call
>> overhead remains.
>>
>> To provide a slight performance improvement, the
>> CONFIG_RCU_STRICT_GRACE_PERIOD config check is moved from
>> rcu_read_unlock_strict() to __rcu_read_unlock() so that the function
>> call can be compiled out in most cases.
>>
>> Besides, the GPL exported rcu_read_unlock_strict() also impact the
>> the compilation of non-GPL kernel modules as rcu_read_unlock() is a
>> frequently used kernel API.
>>
>> Signed-off-by: Waiman Long <longman@redhat.com>
> Nice, and good eyes!!!
>
> I have queued this for v5.16, that is, not the upcoming merge window
> but the one after that.
>
> I did my usual wordsmithing, so please check the following in case I
> messed something up. I intentionally omitted the EXPORT_SYMBOL_GPL()
> discussion because:
>
> 1. Kernels built with CONFIG_PREEMPT=y have the same issue
> with the __rcu_read_lock() and __rcu_read_unlock() functions.
>
> 2. Many other RCU functions are EXPORT_SYMBOL_GPL() and have
> been for almost two decades.
>
> But if someone does use RCU readers within CONFIG_PREEMPT=n kernels from
> a binary module, I will happily refer them to you for any RCU issues
> that they encounter. ;-)
>
> I am also CCing the BPF guys in case my interpretation of the code in
> the BPF verifier is incorrect.
>
> Thanx, Paul
>
It looks good to me. Thanks for the rewording. I did regret mentioning
about about the GPL export symbol in the commit log and it is good that
you had taken it out.
Cheers,
Longman
next prev parent reply other threads:[~2021-08-27 20:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-27 2:21 Waiman Long
2021-08-27 18:34 ` Paul E. McKenney
2021-08-27 20:27 ` Waiman Long [this message]
2021-08-30 18:36 ` Andrii Nakryiko
2021-08-30 18:46 ` Paul E. McKenney
2021-08-30 19:34 ` Andrii Nakryiko
2021-08-30 20:30 ` 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=34cbf3f5-9485-a82d-2548-272e87033ab2@redhat.com \
--to=llong@redhat.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®