Skip to content

Commit d97ae64

Browse files
author
Frederic Weisbecker
committed
Merge branches 'rcu/torture', 'rcu/fixes', 'rcu/docs', 'rcu/refscale', 'rcu/tasks' and 'rcu/stall' into rcu/next
rcu/torture: RCU torture, locktorture and generic torture infrastructure rcu/fixes: Generic and misc fixes rcu/docs: RCU documentation updates rcu/refscale: RCU reference scalability test updates rcu/tasks: RCU tasks updates rcu/stall: Stall detection updates
6 parents cefe8ce + 8a77f38 + a9930e8 + 8a4c0c9 + 0325e8a + b96e7a5 commit d97ae64

35 files changed

+488
-229
lines changed

Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ operations is carried out at several levels:
181181
of this wait (or series of waits, as the case may be) is to permit a
182182
concurrent CPU-hotplug operation to complete.
183183
#. In the case of RCU-sched, one of the last acts of an outgoing CPU is
184-
to invoke ``rcu_report_dead()``, which reports a quiescent state for
184+
to invoke ``rcutree_report_cpu_dead()``, which reports a quiescent state for
185185
that CPU. However, this is likely paranoia-induced redundancy.
186186

187187
+-----------------------------------------------------------------------+

Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg

Lines changed: 0 additions & 9 deletions
Loading

Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg

Lines changed: 2 additions & 2 deletions
Loading

Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg

Lines changed: 2 additions & 11 deletions
Loading

Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg

Lines changed: 2 additions & 2 deletions
Loading

Documentation/RCU/Design/Requirements/Requirements.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1955,12 +1955,12 @@ if offline CPUs block an RCU grace period for too long.
19551955

19561956
An offline CPU's quiescent state will be reported either:
19571957

1958-
1. As the CPU goes offline using RCU's hotplug notifier (rcu_report_dead()).
1958+
1. As the CPU goes offline using RCU's hotplug notifier (rcutree_report_cpu_dead()).
19591959
2. When grace period initialization (rcu_gp_init()) detects a
19601960
race either with CPU offlining or with a task unblocking on a leaf
19611961
``rcu_node`` structure whose CPUs are all offline.
19621962

1963-
The CPU-online path (rcu_cpu_starting()) should never need to report
1963+
The CPU-online path (rcutree_report_cpu_starting()) should never need to report
19641964
a quiescent state for an offline CPU. However, as a debugging measure,
19651965
it does emit a warning if a quiescent state was not already reported
19661966
for that CPU.

Documentation/RCU/listRCU.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ One of the most common uses of RCU is protecting read-mostly linked lists
88
that all of the required memory ordering is provided by the list macros.
99
This document describes several list-based RCU use cases.
1010

11+
When iterating a list while holding the rcu_read_lock(), writers may
12+
modify the list. The reader is guaranteed to see all of the elements
13+
which were added to the list before they acquired the rcu_read_lock()
14+
and are still on the list when they drop the rcu_read_unlock().
15+
Elements which are added to, or removed from the list may or may not
16+
be seen. If the writer calls list_replace_rcu(), the reader may see
17+
either the old element or the new element; they will not see both,
18+
nor will they see neither.
19+
1120

1221
Example 1: Read-mostly list: Deferred Destruction
1322
-------------------------------------------------

Documentation/RCU/whatisRCU.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ experiment with should focus on Section 2. People who prefer to start
5959
with example uses should focus on Sections 3 and 4. People who need to
6060
understand the RCU implementation should focus on Section 5, then dive
6161
into the kernel source code. People who reason best by analogy should
62-
focus on Section 6. Section 7 serves as an index to the docbook API
63-
documentation, and Section 8 is the traditional answer key.
62+
focus on Section 6 and 7. Section 8 serves as an index to the docbook
63+
API documentation, and Section 9 is the traditional answer key.
6464

6565
So, start with the section that makes the most sense to you and your
6666
preferred method of learning. If you need to know everything about

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4820,6 +4820,13 @@
48204820
Set maximum number of finished RCU callbacks to
48214821
process in one batch.
48224822

4823+
rcutree.do_rcu_barrier= [KNL]
4824+
Request a call to rcu_barrier(). This is
4825+
throttled so that userspace tests can safely
4826+
hammer on the sysfs variable if they so choose.
4827+
If triggered before the RCU grace-period machinery
4828+
is fully active, this will error out with EAGAIN.
4829+
48234830
rcutree.dump_tree= [KNL]
48244831
Dump the structure of the rcu_node combining tree
48254832
out at early boot. This is used for diagnostic
@@ -5473,6 +5480,12 @@
54735480
test until boot completes in order to avoid
54745481
interference.
54755482

5483+
refscale.lookup_instances= [KNL]
5484+
Number of data elements to use for the forms of
5485+
SLAB_TYPESAFE_BY_RCU testing. A negative number
5486+
is negated and multiplied by nr_cpu_ids, while
5487+
zero specifies nr_cpu_ids.
5488+
54765489
refscale.loops= [KNL]
54775490
Set the number of loops over the synchronization
54785491
primitive under test. Increasing this number

arch/arm64/kernel/smp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ asmlinkage notrace void secondary_start_kernel(void)
215215
if (system_uses_irq_prio_masking())
216216
init_gic_priority_masking();
217217

218-
rcu_cpu_starting(cpu);
218+
rcutree_report_cpu_starting(cpu);
219219
trace_hardirqs_off();
220220

221221
/*
@@ -401,7 +401,7 @@ void __noreturn cpu_die_early(void)
401401

402402
/* Mark this CPU absent */
403403
set_cpu_present(cpu, 0);
404-
rcu_report_dead(cpu);
404+
rcutree_report_cpu_dead();
405405

406406
if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
407407
update_cpu_boot_status(CPU_KILL_ME);

0 commit comments

Comments
 (0)