RCU Archive on lore.kernel.org
 help / color / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: rcu <rcu@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	kernel-team <kernel-team@fb.com>, Ingo Molnar <mingo@kernel.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	dipankar <dipankar@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	rostedt <rostedt@goodmis.org>,
	David Howells <dhowells@redhat.com>,
	Eric Dumazet <edumazet@google.com>, fweisbec <fweisbec@gmail.com>,
	Oleg Nesterov <oleg@redhat.com>,
	"Joel Fernandes, Google" <joel@joelfernandes.org>
Subject: Re: [PATCH RFC v2 tip/core/rcu 0/22] Prototype RCU usable from idle, exception, offline
Date: Thu, 19 Mar 2020 06:13:24 -0700
Message-ID: <20200319131324.GB3199@paulmck-ThinkPad-P72> (raw)
In-Reply-To: <1560487611.2836.1584617498827.JavaMail.zimbra@efficios.com>

On Thu, Mar 19, 2020 at 07:31:38AM -0400, Mathieu Desnoyers wrote:
> ----- On Mar 18, 2020, at 8:10 PM, paulmck paulmck@kernel.org wrote:
> 
> > Hello!
> 
> Hi Paul,
> 
> Thanks for pulling this together! Some comments below (based only on the
> cover message),

And thank you for your review and comments!

> [...]
> 
> > There are of course downsides.  The grace-period code can send IPIs to
> > CPUs, even when those CPUs are in the idle loop or in nohz_full userspace.
> > However, this version enlists the aid of the context-switch hooks,
> > which eliminates the need for IPIs in context-switch-heavy workloads.
> > It also prohibits sending of IPIs early in the grace period, which
> > provides additional opportunity for the hooks to do their job.  Additional
> > IPI-reduction mechanisms are under development.
> 
> I suspect that on nohz_full cpus, at least some use-cases which really care
> about not receiving IPIs will not be doing that many context switches.
> 
> What are the possible approaches to have IPI-*elimination* for nohz cpus ?

Pretty much as you suggested, actually.  I have some other approaches
that should eliminate read-side overhead, and thus might prove necessary
longer term.  However, from what I can see your suggestion is good and
sufficient, and perhaps indefinitely.  So thank you for that!

In more detail:

Add a per-task flag that tells readers to use smp_mb().  In kernels
built for these workloads (CONFIG_TASKS_TRACE_RCU_READ_MB=y), set
this flag on entry to usermode/idle (that is, the non-offline RCU
extended quiescent states) and clear it upon exit.  The pre-existing
dyntick-counter increment provides the necessary mameory ordering.
Then if the update side sees that the task is running on a CPU in a
non-offline extended quiescent state (which just happens to be what the
dynticks counter already indicates), it carries out the checks knowing
that the reader is using memory barriers.

The initial state sets CONFIG_TASKS_TRACE_RCU_READ_MB=y when either
CONFIG_PREEMPT_RT=y or when CONFIG_NR_CPUS < 8.  The rationale for
the former is that HPC NO_HZ_FULL workloads probably don't care
all that much about a stray IPI as long as it happens infrequently.
500ms should qualify as "infrequently".  The rationale for the latter
was that I couldn't get any better heuristic than number of CPUs from
my battery-powered contacts.  Yes, 8 is a bit low, especially given
that my own smartphone has 8 CPUs, but I have to start somewhere.
Another option is for battery-powered devices to just "select
CONFIG_TASKS_TRACE_RCU_READ_MB" in their defconfig files.

This work has started in -rcu, but was not to the point where I felt
comfortable sending it in yesterday's series.  And yes, I will add it
to the cover letter, hopefully on the next version of this patch set.

> > The RCU tasks trace mechanism is based off of RCU tasks rather than
> > SRCU because the latter is more complex and also because the latter
> > uses a CPU-by-CPU approach to tracking quiescent states instead of the
> > task-by-task approach that is needed.  It is in theory possible to
> > mash RCU tasks trace into the Tree SRCU implementation, but there
> > will need to be extremely good reasons for doing so.
> 
> I have a hard time buying the "less complexity" argument to justify the
> introduction of yet another flavor of RCU when a close match already
> exists (SRCU).

Tree SRCU is not the simplest thing out there.  And please see below.

> The other argument for this task-based RCU (rather than CPU-by-CPU as
> done by SRCU) is that "a task-by-task approach is needed". What I
> do not get from this explanation is why is such an approach needed ?

Because SRCU's accounting only knows the number of things that are
preventing the current grace period from ending.  In this, it differs
from userspace RCU, which knows exactly which threads are preventing the
current grace period from ending.  In contrast, SRCU has absolutely no
idea which task or CPU is preventing the grace period from ending.
SRCU is therefore incapable of locking down those tasks to encourage
them to report the next quiescent state.

Yes, SRCU could be modified.  Maybe someday that will prove a good
idea.  Today is not that day, nor is that day coming soon.

> Also, another aspect worth discussing here is the use-cases which
> need to be covered by tracing-rcu. Is this specific flavor targeting
> specifically preempt-off use-cases, or is the goal here to target
> use-cases which may trigger major page faults within the read-side
> critical section as well ?

Yes, CONFIG_PREEMPT=n use cases are still extremely important.  Don't get
me wrong, real-time computing does have a warm place in my heart, but
there is still a very large number of CONFIG_PREEMPT=n systems running
out there.  And yes, the ability to handle the occasional page fault is
also important.  So both simultaneously, not just one or the other.

> Note that doing task-by-task tracking of tracing-rcu rather than
> cpu-by-cpu is not free: AFAIU it bloats the task struct (always)
> for a use-case which is not always active. My experience with
> tracepoints and asm gotos is that we need to be careful not to
> slow down the common case (kernel running without any tracing
> active, but tracing configured in) if we want to keep distributions
> and end users building kernels with introspection facilities in
> place.

Which is indeed another reason for not pressing SRCU into service here.
There would have to be a "special" srcu_struct that owned a piece of
the task_struct structure on the one hand, or there would need to be
another set of allocations done at the creation of each task for each
such srcu_struct on the other.  Neither sounds at all attractive.

Please note also that Tasks RCU, which is already used by many forms of
tracing, already added a similar amount to the task_struct structure quite
some time ago.  But you are right that I should to add an item to my todo
list to squeeze the state down a bit, and for both variants while I am
at it.  For but one example, I could automatically use a short for the
CPU numbers when CONFIG_NR_CPUS is less than 32,768.  Perhaps a similar
optimization could be applied elsewhere in the task_struct structure.

							Thanx, Paul

  reply index

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 18:16 [PATCH RFC tip/core/rcu 0/16] " Paul E. McKenney
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 01/16] sched/core: Add function to sample state of non-running function paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 02/16] rcu: Add per-task state to RCU CPU stall warnings paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 03/16] rcutorture: Add flag to produce non-busy-wait task stalls paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 04/16] rcu-tasks: Move Tasks RCU to its own file paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 05/16] rcu-tasks: Create struct to hold state information paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 06/16] rcu: Reinstate synchronize_rcu_mult() paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 07/16] rcutorture: Add a test for synchronize_rcu_mult() paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 08/16] rcu-tasks: Refactor RCU-tasks to allow variants to be added paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 09/16] rcu-tasks: Add an RCU-tasks rude variant paulmck
2020-03-16 19:47   ` Joel Fernandes
2020-03-16 20:17     ` Joel Fernandes
2020-03-16 20:32       ` Paul E. McKenney
2020-03-16 21:32         ` Steven Rostedt
2020-03-16 21:45           ` Joel Fernandes
2020-03-16 22:03             ` Steven Rostedt
2020-03-16 22:11               ` Paul E. McKenney
2020-05-10  9:59               ` Lai Jiangshan
2020-05-10 15:49                 ` Paul E. McKenney
2020-05-11  0:06                   ` Lai Jiangshan
2020-05-11  2:44                     ` Paul E. McKenney
2020-05-11  0:44                 ` Masami Hiramatsu
2020-05-11 16:07                 ` Steven Rostedt
2020-05-11 19:48                 ` Steven Rostedt
2020-03-16 20:29     ` Paul E. McKenney
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 10/16] rcutorture: Add torture tests for RCU Tasks Rude paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 11/16] rcu-tasks: Use unique names for RCU-Tasks kthreads and messages paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 12/16] rcu-tasks: Further refactor RCU-tasks to allow adding more variants paulmck
2020-03-12 18:16 ` [PATCH RFC tip/core/rcu 13/16] rcu-tasks: Code movement to allow more Tasks RCU variants paulmck
2020-03-12 18:17 ` [PATCH RFC tip/core/rcu 14/16] rcu: Add an RCU Tasks Trace to simplify protection of tracing hooks paulmck
2020-03-12 18:17 ` [PATCH RFC tip/core/rcu 15/16] rcutorture: Add torture tests for RCU Tasks Trace paulmck
2020-03-12 18:17 ` [PATCH RFC tip/core/rcu 16/16] rcu-tasks: Add stall warnings " paulmck
2020-03-13 14:41 ` [PATCH RFC tip/core/rcu 0/16] Prototype RCU usable from idle, exception, offline Frederic Weisbecker
2020-03-13 15:42   ` Paul E. McKenney
2020-03-15 17:45     ` Mathieu Desnoyers
2020-03-15 17:59       ` Paul E. McKenney
2020-03-16 18:36         ` Steven Rostedt
2020-03-16 18:52           ` Paul E. McKenney
2020-03-16 14:45     ` Frederic Weisbecker
2020-03-16 15:39       ` Paul E. McKenney
2020-03-19  0:10 ` [PATCH RFC v2 tip/core/rcu 0/22] " Paul E. McKenney
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 01/22] sched/core: Add function to sample state of locked-down task paulmck
2020-03-19 17:22     ` Steven Rostedt
2020-03-19 17:35       ` Paul E. McKenney
2020-03-20  2:49         ` Paul E. McKenney
2020-03-20  3:09           ` Steven Rostedt
2020-03-20 16:27             ` Paul E. McKenney
2020-03-24  0:06           ` Joel Fernandes
2020-03-24  0:15             ` Joel Fernandes
2020-03-24 16:26               ` Paul E. McKenney
2020-03-24 15:48             ` Paul E. McKenney
2020-03-24 16:52               ` Joel Fernandes
2020-03-24 17:20                 ` Paul E. McKenney
2020-03-24 18:19                   ` Joel Fernandes
2020-03-25  0:58                     ` Paul E. McKenney
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 02/22] rcu: Add per-task state to RCU CPU stall warnings paulmck
2020-03-19 17:27     ` Steven Rostedt
2020-03-19 17:41       ` Paul E. McKenney
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 03/22] rcutorture: Add flag to produce non-busy-wait task stalls paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 04/22] rcu-tasks: Move Tasks RCU to its own file paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 05/22] rcu-tasks: Create struct to hold state information paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 06/22] rcu: Reinstate synchronize_rcu_mult() paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 07/22] rcutorture: Add a test for synchronize_rcu_mult() paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 08/22] rcu-tasks: Refactor RCU-tasks to allow variants to be added paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 09/22] rcu-tasks: Add an RCU-tasks rude variant paulmck
2020-03-19 19:04     ` Steven Rostedt
2020-03-19 23:58       ` Paul E. McKenney
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 10/22] rcutorture: Add torture tests for RCU Tasks Rude paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 11/22] rcu-tasks: Use unique names for RCU-Tasks kthreads and messages paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 12/22] rcu-tasks: Further refactor RCU-tasks to allow adding more variants paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 13/22] rcu-tasks: Code movement to allow more Tasks RCU variants paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 14/22] rcu-tasks: Add an RCU Tasks Trace to simplify protection of tracing hooks paulmck
2020-03-19  1:37     ` Joel Fernandes
2020-03-19  1:58       ` Joel Fernandes
2020-03-19  3:40         ` Paul E. McKenney
2020-03-19 19:42     ` Steven Rostedt
2020-03-20  0:28       ` Paul E. McKenney
2020-03-20  0:48         ` Steven Rostedt
2020-03-20  2:41           ` Paul E. McKenney
2020-03-28 14:06             ` Joel Fernandes
2020-03-28 15:34               ` Paul E. McKenney
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 15/22] rcutorture: Add torture tests for RCU Tasks Trace paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 16/22] rcu-tasks: Add stall warnings " paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 17/22] rcu-tasks: Move #ifdef into tasks.h paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 18/22] rcu-tasks: Add RCU tasks to rcutorture writer stall output paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 19/22] rcu-tasks: Make rcutorture writer stall output include GP state paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 20/22] rcu-tasks: Make RCU Tasks Trace make use of RCU scheduler hooks paulmck
2020-03-19  0:10   ` [PATCH RFC v2 tip/core/rcu 21/22] rcu-tasks: Add a grace-period start time for throttling and debug paulmck
2020-03-19  0:11   ` [PATCH RFC v2 tip/core/rcu 22/22] rcu-tasks: Provide boot parameter to delay IPIs until late in grace period paulmck
2020-03-19 11:31   ` [PATCH RFC v2 tip/core/rcu 0/22] Prototype RCU usable from idle, exception, offline Mathieu Desnoyers
2020-03-19 13:13     ` Paul E. McKenney [this message]
     [not found]   ` <20200319104614.11444-1-hdanton@sina.com>
2020-03-19 12:38     ` [PATCH RFC v2 tip/core/rcu 03/22] rcutorture: Add flag to produce non-busy-wait task stalls Paul E. McKenney
     [not found]     ` <20200319133947.12172-1-hdanton@sina.com>
2020-03-19 15:22       ` Paul E. McKenney
     [not found]       ` <20200320040329.9840-1-hdanton@sina.com>
2020-03-20 16:11         ` Paul E. McKenney
     [not found]   ` <20200320071228.9740-1-hdanton@sina.com>
2020-03-20 19:14     ` [PATCH RFC v2 tip/core/rcu 04/22] rcu-tasks: Move Tasks RCU to its own file Paul E. McKenney
2020-03-27 22:23   ` [PATCH RFC v3 tip/core/rcu 0/34] Prototype RCU usable from idle, exception, offline Paul E. McKenney
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 01/34] sched/core: Add function to sample state of locked-down task paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 02/34] rcu: Add per-task state to RCU CPU stall warnings paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 03/34] rcutorture: Add flag to produce non-busy-wait task stalls paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 04/34] rcu-tasks: Move Tasks RCU to its own file paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 05/34] rcu-tasks: Create struct to hold state information paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 06/34] rcu: Reinstate synchronize_rcu_mult() paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 07/34] rcutorture: Add a test for synchronize_rcu_mult() paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 08/34] rcu-tasks: Refactor RCU-tasks to allow variants to be added paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 09/34] rcu-tasks: Add an RCU-tasks rude variant paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 10/34] rcutorture: Add torture tests for RCU Tasks Rude paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 11/34] rcu-tasks: Use unique names for RCU-Tasks kthreads and messages paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 12/34] rcu-tasks: Further refactor RCU-tasks to allow adding more variants paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 13/34] rcu-tasks: Code movement to allow more Tasks RCU variants paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 14/34] rcu-tasks: Add an RCU Tasks Trace to simplify protection of tracing hooks paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 15/34] rcutorture: Add torture tests for RCU Tasks Trace paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 16/34] rcu-tasks: Add stall warnings " paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 17/34] rcu-tasks: Move #ifdef into tasks.h paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 18/34] rcu-tasks: Add RCU tasks to rcutorture writer stall output paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 19/34] rcu-tasks: Make rcutorture writer stall output include GP state paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 20/34] rcu-tasks: Make RCU Tasks Trace make use of RCU scheduler hooks paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 21/34] rcu-tasks: Add a grace-period start time for throttling and debug paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 22/34] rcu-tasks: Provide boot parameter to delay IPIs until late in grace period paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 23/34] rcu-tasks: Split ->trc_reader_need_end paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 24/34] rcu-tasks: Add grace-period and IPI counts to statistics paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 25/34] rcu-tasks: Add Kconfig option to mediate smp_mb() vs. IPI paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 26/34] rcu-tasks: Avoid IPIing userspace/idle tasks if kernel is so built paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 27/34] rcu-tasks: Allow rcu_read_unlock_trace() under scheduler locks paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 28/34] rcu-tasks: Disable CPU hotplug across RCU tasks trace scans paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 29/34] rcu-tasks: Handle the running-offline idle-task special case paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 30/34] rcu-tasks: Make RCU tasks trace also wait for idle tasks paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 31/34] rcu-tasks: Add rcu_dynticks_zero_in_eqs() effectiveness statistics paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 32/34] rcu-tasks: Add count for idle tasks on offline CPUs paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 33/34] rcutorture: Add TRACE02 scenario enabling RCU Tasks Trace IPIs paulmck
2020-03-27 22:24     ` [PATCH v3 tip/core/rcu 34/34] rcu-tasks: Add IPI failure count to statistics paulmck
2020-04-15 18:18     ` [PATCH v4 tip/core/rcu 0/38] Prototype RCU usable from idle, exception, offline Paul E. McKenney
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 01/38] rcu: Add comments marking transitions between RCU watching and not paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 02/38] rcu-tasks: Use context-switch hook for PREEMPT=y kernels paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 03/38] sched/core: Add function to sample state of locked-down task paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 04/38] rcu: Add per-task state to RCU CPU stall warnings paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 05/38] rcu-tasks: Move Tasks RCU to its own file paulmck
2020-05-10  7:42         ` Lai Jiangshan
2020-05-10 15:39           ` Paul E. McKenney
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 06/38] rcu-tasks: Create struct to hold state information paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 07/38] rcu: Reinstate synchronize_rcu_mult() paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 08/38] rcutorture: Add a test for synchronize_rcu_mult() paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 09/38] rcu-tasks: Refactor RCU-tasks to allow variants to be added paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 10/38] rcu-tasks: Add an RCU-tasks rude variant paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 11/38] rcutorture: Add torture tests for RCU Tasks Rude paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 12/38] rcu-tasks: Use unique names for RCU-Tasks kthreads and messages paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 13/38] rcu-tasks: Further refactor RCU-tasks to allow adding more variants paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 14/38] rcu-tasks: Code movement to allow more Tasks RCU variants paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 15/38] rcu-tasks: Add an RCU Tasks Trace to simplify protection of tracing hooks paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 16/38] rcutorture: Add torture tests for RCU Tasks Trace paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 17/38] rcu-tasks: Add stall warnings " paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 18/38] rcu-tasks: Move #ifdef into tasks.h paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 19/38] rcu-tasks: Add RCU tasks to rcutorture writer stall output paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 20/38] rcu-tasks: Make rcutorture writer stall output include GP state paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 21/38] rcu-tasks: Make RCU Tasks Trace make use of RCU scheduler hooks paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 22/38] rcu-tasks: Add a grace-period start time for throttling and debug paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 23/38] rcu-tasks: Provide boot parameter to delay IPIs until late in grace period paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 24/38] rcu-tasks: Split ->trc_reader_need_end paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 25/38] rcu-tasks: Add grace-period and IPI counts to statistics paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 26/38] rcu-tasks: Add Kconfig option to mediate smp_mb() vs. IPI paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 27/38] rcu-tasks: Avoid IPIing userspace/idle tasks if kernel is so built paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 28/38] rcu-tasks: Allow rcu_read_unlock_trace() under scheduler locks paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 29/38] rcu-tasks: Disable CPU hotplug across RCU tasks trace scans paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 30/38] rcu-tasks: Handle the running-offline idle-task special case paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 31/38] rcu-tasks: Make RCU tasks trace also wait for idle tasks paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 32/38] rcu-tasks: Add rcu_dynticks_zero_in_eqs() effectiveness statistics paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 33/38] rcu-tasks: Add count for idle tasks on offline CPUs paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 34/38] rcutorture: Add TRACE02 scenario enabling RCU Tasks Trace IPIs paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 35/38] rcu-tasks: Add IPI failure count to statistics paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 36/38] rcu-tasks: Allow standalone use of TASKS_{TRACE_,}RCU paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 37/38] ftrace: Use synchronize_rcu_tasks_rude() instead of ftrace_sync() paulmck
2020-04-15 18:19       ` [PATCH v4 tip/core/rcu 38/38] rcu: Don't acquire lock in NMI handler in rcu_nmi_enter_common() paulmck

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=20200319131324.GB3199@paulmck-ThinkPad-P72 \
    --to=paulmck@kernel.org \
    --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=kernel-team@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rcu@vger.kernel.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

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 \
		rcu@vger.kernel.org
	public-inbox-index rcu

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.rcu


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