<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/rcu/srcutree.c, branch v4.19</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.19</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.19'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2018-07-12T22:39:25Z</updated>
<entry>
<title>srcu: Add grace-period number to rcutorture statistics printout</title>
<updated>2018-07-12T22:39:25Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-06-19T15:54:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=52e17ba1d063ab6adb367f288babd380e30bad46'/>
<id>urn:sha1:52e17ba1d063ab6adb367f288babd380e30bad46</id>
<content type='text'>
This commit adds the SRCU grace-period number to the rcutorture statistics
printout, which allows it to be compared to the rcutorture "Writer stall
state" message.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Use pr_fmt to prefix "rcu: " to logging output</title>
<updated>2018-07-12T22:39:13Z</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2018-05-14T20:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a7538352da722fae5cc95ae6656ea2013f5b8b21'/>
<id>urn:sha1:a7538352da722fae5cc95ae6656ea2013f5b8b21</id>
<content type='text'>
This commit also adjusts some whitespace while in the area.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
[ paulmck: Revert string-breaking %s as requested by Andy Shevchenko. ]
</content>
</entry>
<entry>
<title>rcutorture: Convert rcutorture_get_gp_data() to -&gt;gp_seq</title>
<updated>2018-07-12T21:27:57Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-05-01T13:42:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=aebc82644b2c8eafa15e8c481fbafc1b41f4fbf9'/>
<id>urn:sha1:aebc82644b2c8eafa15e8c481fbafc1b41f4fbf9</id>
<content type='text'>
SRCU has long used -&gt;srcu_gp_seq, and now RCU uses -&gt;gp_seq.  This
commit therefore moves the rcutorture_get_gp_data() function from
a -&gt;gpnum / -&gt;completed pair to -&gt;gp_seq.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>srcu: Add address of first callback to rcutorture output</title>
<updated>2018-06-25T18:26:24Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-05-22T19:28:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5ab07a8df4d6c958ca63640d3f2ef896f0679c05'/>
<id>urn:sha1:5ab07a8df4d6c958ca63640d3f2ef896f0679c05</id>
<content type='text'>
This commit adds the address of the first callback to the per-CPU rcutorture
output in order to allow lost wakeups to be more efficiently tracked down.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>srcu: Document that srcu_funnel_gp_start() implies srcu_funnel_exp_start()</title>
<updated>2018-06-25T18:26:24Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-04-25T19:03:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=17294ce6a41d3fee6a9bfc52387c107a4607c1c9'/>
<id>urn:sha1:17294ce6a41d3fee6a9bfc52387c107a4607c1c9</id>
<content type='text'>
This commit updates the header comment of srcu_funnel_gp_start() to
document the fact that srcu_funnel_gp_start() does the work of
srcu_funnel_exp_start(), in some cases by invoking it directly.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>srcu: Fix typos in __call_srcu() header comment</title>
<updated>2018-06-25T18:26:24Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-04-25T04:30:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5ef98a6328a1506f544a64b28d6a8a7b99af475b'/>
<id>urn:sha1:5ef98a6328a1506f544a64b28d6a8a7b99af475b</id>
<content type='text'>
This commit simply changes some copy-pasta call_rcu() instances to
the correct call_srcu().

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>srcu: Add cleanup_srcu_struct_quiesced()</title>
<updated>2018-05-15T17:27:56Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-04-06T00:19:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f7194ac32ca241d28765a98e42a7fe13debc85a7'/>
<id>urn:sha1:f7194ac32ca241d28765a98e42a7fe13debc85a7</id>
<content type='text'>
The current cleanup_srcu_struct() flushes work, which prevents it
from being invoked from some workqueue contexts, as well as from
atomic (non-blocking) contexts.  This patch therefore introduced a
cleanup_srcu_struct_quiesced(), which can be invoked only after all
activity on the specified srcu_struct has completed.  This restriction
allows cleanup_srcu_struct_quiesced() to be invoked from workqueue
contexts as well as from atomic contexts.

Suggested-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Tested-by: Nitzan Carmi &lt;nitzanc@mellanox.com&gt;
Tested-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge branches 'fixes.2018.02.23a', 'srcu.2018.02.20a' and 'torture.2018.02.20a' into HEAD</title>
<updated>2018-02-23T23:15:41Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-02-23T23:15:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=338c46403f169dd76bff8ed58fd0be0d600e7aba'/>
<id>urn:sha1:338c46403f169dd76bff8ed58fd0be0d600e7aba</id>
<content type='text'>
fixes.2018.02.23a: Miscellaneous fixes
srcu.2018.02.20a: SRCU updates
torture.2018.02.20a: Torture-test updates
</content>
</entry>
<entry>
<title>rcu: Create RCU-specific workqueues with rescuers</title>
<updated>2018-02-23T23:14:40Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-01-08T22:35:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ad7c946b35ad455417fdd4bc0e17deda4011841b'/>
<id>urn:sha1:ad7c946b35ad455417fdd4bc0e17deda4011841b</id>
<content type='text'>
RCU's expedited grace periods can participate in out-of-memory deadlocks
due to all available system_wq kthreads being blocked and there not being
memory available to create more.  This commit prevents such deadlocks
by allocating an RCU-specific workqueue_struct at early boot time, and
providing it with a rescuer to ensure forward progress.  This uses the
shiny new init_rescuer() function provided by Tejun (but indirectly).

This commit also causes SRCU to use this new RCU-specific
workqueue_struct.  Note that SRCU's use of workqueues never blocks them
waiting for readers, so this should be safe from a forward-progress
viewpoint.  Note that this moves SRCU from system_power_efficient_wq
to a normal workqueue.  In the unlikely event that this results in
measurable degradation, a separate power-efficient workqueue will be
creates for SRCU.

Reported-by: Prateek Sood &lt;prsood@codeaurora.org&gt;
Reported-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Acked-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Remove SRCU throttling</title>
<updated>2018-02-21T00:21:13Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-02-14T22:20:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6308f3477510e15391ac82deaee66f8425339014'/>
<id>urn:sha1:6308f3477510e15391ac82deaee66f8425339014</id>
<content type='text'>
The code in srcu_gp_end() inserts a delay every 0x3ff grace periods in
order to prevent SRCU grace-period work from consuming an entire CPU
when there is a long sequence of expedited SRCU grace-period requests.
However, all of SRCU's grace-period work is carried out in workqueues,
which are in turn within kthreads, which are automatically throttled as
needed by the scheduler.  In particular, if there is plenty of idle time,
there is no point in throttling.

This commit therefore removes the expedited SRCU grace-period throttling.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
</feed>
