From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org,
rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com,
fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org
Subject: Re: [PATCH tip/core/rcu 0/19] RCU flavor-consolidation changes for v4.20/v5.0
Date: Wed, 29 Aug 2018 15:22:14 -0700 [thread overview]
Message-ID: <20180829222214.GA19014@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180829222021.GA29944@linux.vnet.ibm.com>
On Wed, Aug 29, 2018 at 03:20:21PM -0700, Paul E. McKenney wrote:
> Hello!
>
> This series contains the RCU flavor consolidation, along with some initial
> cleanup work enabled by that consolidation (and some that became apparent
> while cleaning up):
>
> 1. Refactor rcu_{nmi,irq}_{enter,exit}(), saving a branch on the
> idle entry/exit hotpaths, courtesy of Byungchul Park,
>
> 2. Defer reporting RCU-preempt quiescent states when disabled.
> This is the key commit that consolidates the RCU-bh and RCU-sched
> flavors into RCU, however, the RCU-bh and RCU-sched flavors
> still exist independently as well at this point.
>
> 3. Test extended "rcu" read-side critical sections. This commit
> causes rcutorture to test RCU's new-found ability to act as
> the combination of RCU, RCU-bh, and RCU-sched.
>
> 4. Allow processing deferred QSes for exiting RCU-preempt readers.
> This is a optimization.
>
> 5. Remove now-unused ->b.exp_need_qs field from the rcu_special union.
>
> 6. Add warning to detect half-interrupts. Test the claim that
> the Linux kernel no longer does half-interrupts.
>
> 7. Apply RCU-bh QSes to RCU-sched and RCU-preempt when safe, that is,
> make the consolidated RCU inherit RCU-bh's denial-of-service
> avoidance mechanism.
>
> 8. Report expedited grace periods at context-switch time. This is
> an optimization enabled by the RCU flavor consolidation.
>
> 9. Define RCU-bh update API in terms of RCU. This commit gets rid
> of the RCU-bh update mechanism.
>
> 10. Update comments and help text to account for the removal of
> the RCU-bh update mechanism.
>
> 11. Drop "wake" parameter from rcu_report_exp_rdp().
>
> 12. Fix typo in rcu_get_gp_kthreads_prio() header comment.
>
> 13. Define RCU-sched API in terms of RCU for Tree RCU PREEMPT builds.
> Although this commit gets rid of the RCU-sched update mechanism
> from PREEMPT builds, it of course remains as the sole RCU flavor
> for !PREEMPT && !SMP builds.
>
> 14. Express Tiny RCU updates in terms of RCU rather than RCU-sched.
> This will enable additional cleanups and code savings.
>
> 15. Remove RCU_STATE_INITIALIZER() in favor of just using an open-coded
> initializer for the sole remaining rcu_state structure.
>
> 16. Eliminate rcu_state structure's ->call field, as it is now always
> just call_rcu().
>
> 17. Remove rcu_state structure's ->rda field, as there is now only one
> set of per-CPU rcu_data structures.
And last, but perhaps not least:
18. Remove rcu_state_p pointer to default rcu_state structure, now
that there is only one rcu_state structure.
19. Remove rcu_data_p pointer to default rcu_data structure, now that
there is only one set of per-CPU rcu_data structures.
Thanx, Paul
> ------------------------------------------------------------------------
>
> Documentation/RCU/Design/Requirements/Requirements.html | 50 -
> include/linux/rcupdate.h | 48 -
> include/linux/rcupdate_wait.h | 6
> include/linux/rcutiny.h | 61 +
> include/linux/rcutree.h | 31
> include/linux/sched.h | 6
> kernel/rcu/Kconfig | 10
> kernel/rcu/rcutorture.c | 1
> kernel/rcu/tiny.c | 163 +--
> kernel/rcu/tree.c | 655 +++++-----------
> kernel/rcu/tree.h | 44 -
> kernel/rcu/tree_exp.h | 256 +++---
> kernel/rcu/tree_plugin.h | 523 ++++++------
> kernel/rcu/update.c | 2
> kernel/softirq.c | 3
> 15 files changed, 836 insertions(+), 1023 deletions(-)
prev parent reply other threads:[~2018-08-29 22:22 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-29 22:20 [PATCH tip/core/rcu 0/19] RCU flavor-consolidation changes for v4.20/v5.0 Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 01/19] rcu: Refactor rcu_{nmi,irq}_{enter,exit}() Paul E. McKenney
2018-08-30 18:10 ` Steven Rostedt
2018-08-30 23:02 ` Paul E. McKenney
2018-08-31 2:25 ` Byungchul Park
2018-08-29 22:20 ` [PATCH tip/core/rcu 02/19] rcu: Defer reporting RCU-preempt quiescent states when disabled Paul E. McKenney
2018-10-29 11:24 ` Ran Rozenstein
2018-10-29 14:27 ` Paul E. McKenney
2018-10-30 3:44 ` Joel Fernandes
2018-10-30 12:58 ` Paul E. McKenney
2018-10-30 22:21 ` Joel Fernandes
2018-10-31 18:22 ` Paul E. McKenney
2018-11-02 19:43 ` Paul E. McKenney
2018-11-26 13:55 ` Ran Rozenstein
2018-11-26 19:00 ` Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 03/19] rcutorture: Test extended "rcu" read-side critical sections Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 04/19] rcu: Allow processing deferred QSes for exiting RCU-preempt readers Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 05/19] rcu: Remove now-unused ->b.exp_need_qs field from the rcu_special union Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 06/19] rcu: Add warning to detect half-interrupts Paul E. McKenney
2019-03-11 13:39 ` Joel Fernandes
2019-03-11 22:29 ` Paul E. McKenney
2019-03-12 15:05 ` Joel Fernandes
2019-03-12 15:20 ` Paul E. McKenney
2019-03-13 15:09 ` Joel Fernandes
2019-03-13 15:27 ` Steven Rostedt
2019-03-13 15:51 ` Paul E. McKenney
2019-03-13 16:51 ` Steven Rostedt
2019-03-13 18:07 ` Paul E. McKenney
2019-03-14 12:31 ` Joel Fernandes
2019-03-14 13:36 ` Steven Rostedt
2019-03-14 13:37 ` Steven Rostedt
2019-03-14 21:27 ` Joel Fernandes
2019-03-15 7:31 ` Byungchul Park
2019-03-15 7:44 ` Byungchul Park
2019-03-15 13:46 ` Joel Fernandes
2018-08-29 22:20 ` [PATCH tip/core/rcu 07/19] rcu: Apply RCU-bh QSes to RCU-sched and RCU-preempt when safe Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 08/19] rcu: Report expedited grace periods at context-switch time Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 09/19] rcu: Define RCU-bh update API in terms of RCU Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 10/19] rcu: Update comments and help text for no more RCU-bh updaters Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 11/19] rcu: Drop "wake" parameter from rcu_report_exp_rdp() Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 12/19] rcu: Fix typo in rcu_get_gp_kthreads_prio() header comment Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 13/19] rcu: Define RCU-sched API in terms of RCU for Tree RCU PREEMPT builds Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 14/19] rcu: Express Tiny RCU updates in terms of RCU rather than RCU-sched Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 15/19] rcu: Remove RCU_STATE_INITIALIZER() Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 16/19] rcu: Eliminate rcu_state structure's ->call field Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 17/19] rcu: Remove rcu_state structure's ->rda field Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 18/19] rcu: Remove rcu_state_p pointer to default rcu_state structure Paul E. McKenney
2018-08-29 22:20 ` [PATCH tip/core/rcu 19/19] rcu: Remove rcu_data_p pointer to default rcu_data structure Paul E. McKenney
2018-08-29 22:22 ` Paul E. McKenney [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:
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=20180829222214.GA19014@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--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.