Commit 0e247386 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

Merge branches 'doc.2019.12.10a', 'exp.2019.12.09a', 'fixes.2020.01.24a',...

Merge branches 'doc.2019.12.10a', 'exp.2019.12.09a', 'fixes.2020.01.24a', 'kfree_rcu.2020.01.24a', 'list.2020.01.10a', 'preempt.2020.01.24a' and 'torture.2019.12.09a' into HEAD

doc.2019.12.10a: Documentations updates
exp.2019.12.09a: Expedited grace-period updates
fixes.2020.01.24a: Miscellaneous fixes
kfree_rcu.2020.01.24a: Batch kfree_rcu() work
list.2020.01.10a: RCU-protected-list updates
preempt.2020.01.24a: Preemptible RCU updates
torture.2019.12.09a: Torture-test updates
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -207,6 +207,10 @@ Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Patrick Mochel <mochel@digitalimplant.org>
Patrick Mochel <mochel@digitalimplant.org>
Paul Burton <paulburton@kernel.org> <paul.burton@imgtec.com>
Paul Burton <paulburton@kernel.org> <paul.burton@imgtec.com>
Paul Burton <paulburton@kernel.org> <paul.burton@mips.com>
Paul Burton <paulburton@kernel.org> <paul.burton@mips.com>
Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.ibm.com>
Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.vnet.ibm.com>
Paul E. McKenney <paulmck@kernel.org> <paul.mckenney@linaro.org>
Paul E. McKenney <paulmck@kernel.org> <paulmck@us.ibm.com>
Peter A Jonsson <pj@ludd.ltu.se>
Peter A Jonsson <pj@ludd.ltu.se>
Peter Oruba <peter@oruba.de>
Peter Oruba <peter@oruba.de>
Peter Oruba <peter.oruba@amd.com>
Peter Oruba <peter.oruba@amd.com>
+3 −8
Original line number Original line Diff line number Diff line
@@ -225,18 +225,13 @@ an estimate of the total number of RCU callbacks queued across all CPUs
In kernels with CONFIG_RCU_FAST_NO_HZ, more information is printed
In kernels with CONFIG_RCU_FAST_NO_HZ, more information is printed
for each CPU:
for each CPU:


	0: (64628 ticks this GP) idle=dd5/3fffffffffffffff/0 softirq=82/543 last_accelerate: a345/d342 Nonlazy posted: ..D
	0: (64628 ticks this GP) idle=dd5/3fffffffffffffff/0 softirq=82/543 last_accelerate: a345/d342 dyntick_enabled: 1


The "last_accelerate:" prints the low-order 16 bits (in hex) of the
The "last_accelerate:" prints the low-order 16 bits (in hex) of the
jiffies counter when this CPU last invoked rcu_try_advance_all_cbs()
jiffies counter when this CPU last invoked rcu_try_advance_all_cbs()
from rcu_needs_cpu() or last invoked rcu_accelerate_cbs() from
from rcu_needs_cpu() or last invoked rcu_accelerate_cbs() from
rcu_prepare_for_idle().  The "Nonlazy posted:" indicates lazy-callback
rcu_prepare_for_idle(). "dyntick_enabled: 1" indicates that dyntick-idle
status, so that an "l" indicates that all callbacks were lazy at the start
processing is enabled.
of the last idle period and an "L" indicates that there are currently
no non-lazy callbacks (in both cases, "." is printed otherwise, as
shown above) and "D" indicates that dyntick-idle processing is enabled
("." is printed otherwise, for example, if disabled via the "nohz="
kernel boot parameter).


If the grace period ends just as the stall warning starts printing,
If the grace period ends just as the stall warning starts printing,
there will be a spurious stall-warning message, which will include
there will be a spurious stall-warning message, which will include
+13 −0
Original line number Original line Diff line number Diff line
@@ -3978,6 +3978,19 @@
			test until boot completes in order to avoid
			test until boot completes in order to avoid
			interference.
			interference.


	rcuperf.kfree_rcu_test= [KNL]
			Set to measure performance of kfree_rcu() flooding.

	rcuperf.kfree_nthreads= [KNL]
			The number of threads running loops of kfree_rcu().

	rcuperf.kfree_alloc_num= [KNL]
			Number of allocations and frees done in an iteration.

	rcuperf.kfree_loops= [KNL]
			Number of loops doing rcuperf.kfree_alloc_num number
			of allocations and frees.

	rcuperf.nreaders= [KNL]
	rcuperf.nreaders= [KNL]
			Set number of RCU readers.  The value -1 selects
			Set number of RCU readers.  The value -1 selects
			N, where N is the number of CPUs.  A value
			N, where N is the number of CPUs.  A value
+0 −2
Original line number Original line Diff line number Diff line
@@ -18,8 +18,6 @@
 * mb() prevents loads and stores being reordered across this point.
 * mb() prevents loads and stores being reordered across this point.
 * rmb() prevents loads being reordered across this point.
 * rmb() prevents loads being reordered across this point.
 * wmb() prevents stores being reordered across this point.
 * wmb() prevents stores being reordered across this point.
 * read_barrier_depends() prevents data-dependent loads being reordered
 *	across this point (nop on PPC).
 *
 *
 * *mb() variants without smp_ prefix must order all types of memory
 * *mb() variants without smp_ prefix must order all types of memory
 * operations with one another. sync is the only instruction sufficient
 * operations with one another. sync is the only instruction sufficient
+2 −2
Original line number Original line Diff line number Diff line
@@ -281,7 +281,7 @@ void mt76_rx_aggr_stop(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tidno)
{
{
	struct mt76_rx_tid *tid = NULL;
	struct mt76_rx_tid *tid = NULL;


	rcu_swap_protected(wcid->aggr[tidno], tid,
	tid = rcu_replace_pointer(wcid->aggr[tidno], tid,
				  lockdep_is_held(&dev->mutex));
				  lockdep_is_held(&dev->mutex));
	if (tid) {
	if (tid) {
		mt76_rx_aggr_shutdown(dev, tid);
		mt76_rx_aggr_shutdown(dev, tid);
Loading