<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/rcu/tree_plugin.h, branch v5.17</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=v5.17</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v5.17'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2021-12-09T19:38:09Z</updated>
<entry>
<title>Merge branches 'doc.2021.11.30c', 'exp.2021.12.07a', 'fastnohz.2021.11.30c', 'fixes.2021.11.30c', 'nocb.2021.12.09a', 'nolibc.2021.11.30c', 'tasks.2021.12.09a', 'torture.2021.12.07a' and 'torturescript.2021.11.30c' into HEAD</title>
<updated>2021-12-09T19:38:09Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@kernel.org</email>
</author>
<published>2021-12-09T19:38:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f80fe66c38d561a006fb4f514b0ee5d11cbe2673'/>
<id>urn:sha1:f80fe66c38d561a006fb4f514b0ee5d11cbe2673</id>
<content type='text'>
doc.2021.11.30c: Documentation updates.
exp.2021.12.07a: Expedited-grace-period fixes.
fastnohz.2021.11.30c: Remove CONFIG_RCU_FAST_NO_HZ.
fixes.2021.11.30c: Miscellaneous fixes.
nocb.2021.12.09a: No-CB CPU updates.
nolibc.2021.11.30c: Tiny in-kernel library updates.
tasks.2021.12.09a: RCU-tasks updates, including update-side scalability.
torture.2021.12.07a: Torture-test in-kernel module updates.
torturescript.2021.11.30c: Torture-test scripting updates.
</content>
</entry>
<entry>
<title>rcu: Make idle entry report expedited quiescent states</title>
<updated>2021-12-08T00:22:22Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@kernel.org</email>
</author>
<published>2021-09-29T18:09:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=790da248978a0722d92d1471630c881704f7eb0d'/>
<id>urn:sha1:790da248978a0722d92d1471630c881704f7eb0d</id>
<content type='text'>
In non-preemptible kernels, an unfortunately timed expedited grace period
can result in the rcu_exp_handler() IPI handler setting the rcu_data
structure's cpu_no_qs.b.exp field just as the target CPU enters idle.
There are situations in which this field will not be checked until after
that CPU exits idle.  The resulting grace-period latency does not qualify
as "expedited".

This commit therefore checks this field upon non-preemptible idle entry in
the rcu_preempt_deferred_qs() function.  It also qualifies the rcu_core()
preempt_count() check with IS_ENABLED(CONFIG_PREEMPT_COUNT) to prevent
false-positive quiescent states from count-free kernels.

Reported-by: Neeraj Upadhyay &lt;neeraju@codeaurora.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Remove rcu_data.exp_deferred_qs and convert to rcu_data.cpu no_qs.b.exp</title>
<updated>2021-12-08T00:22:21Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>frederic@kernel.org</email>
</author>
<published>2021-09-16T12:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6120b72e25e195b6fa15b0a674479a38166c392a'/>
<id>urn:sha1:6120b72e25e195b6fa15b0a674479a38166c392a</id>
<content type='text'>
Having two fields for the same purpose with subtle differences on
different RCU flavours is confusing, especially when both fields always
exist on both RCU flavours.

Fortunately, it is now safe for preemptible RCU to rely on the rcu_data
structure's -&gt;cpu_no_qs.b.exp field, just like non-preemptible RCU.
This commit therefore removes the ad-hoc -&gt;exp_deferred_qs field.

Signed-off-by: Frederic Weisbecker &lt;frederic@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Move rcu_data.cpu_no_qs.b.exp reset to rcu_export_exp_rdp()</title>
<updated>2021-12-08T00:22:21Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>frederic@kernel.org</email>
</author>
<published>2021-09-16T12:10:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6e16b0f7bae3817ea67f4bef4f84298e880fbf66'/>
<id>urn:sha1:6e16b0f7bae3817ea67f4bef4f84298e880fbf66</id>
<content type='text'>
On non-preemptible RCU, move clearing of the rcu_data structure's
-&gt;cpu_no_qs.b.exp filed to the actual expedited quiescent state report
function, matching hw preemptible RCU handles the -&gt;exp_deferred_qs field.

This prepares for removing -&gt;exp_deferred_qs in favor of -&gt;cpu_no_qs.b.exp
for both preemptible and non-preemptible RCU.

Signed-off-by: Frederic Weisbecker &lt;frederic@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Ignore rdp.cpu_no_qs.b.exp on preemptible RCU's rcu_qs()</title>
<updated>2021-12-08T00:20:59Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>frederic@kernel.org</email>
</author>
<published>2021-09-16T12:10:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a4382659487f84c00b5fbb61df25a9ad59396789'/>
<id>urn:sha1:a4382659487f84c00b5fbb61df25a9ad59396789</id>
<content type='text'>
Preemptible RCU does not use the rcu_data structure's -&gt;cpu_no_qs.b.exp,
instead using a separate -&gt;exp_deferred_qs field to record the need for
an expedited quiescent state.

In fact -&gt;cpu_no_qs.b.exp should never be set in preemptible RCU because
preemptible RCU's expedited grace periods use other mechanisms to record
quiescent states.

This commit therefore removes the implicit rcu_qs() reference to
-&gt;cpu_no_qs.b.exp in favor of a direct reference to -&gt;cpu_no_qs.b.norm.

Signed-off-by: Frederic Weisbecker &lt;frederic@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Avoid running boost kthreads on isolated CPUs</title>
<updated>2021-12-01T01:25:20Z</updated>
<author>
<name>Zqiang</name>
<email>qiang.zhang1211@gmail.com</email>
</author>
<published>2021-11-15T05:15:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c2cf0767e98eb4487444e5c7ebba491a866811ce'/>
<id>urn:sha1:c2cf0767e98eb4487444e5c7ebba491a866811ce</id>
<content type='text'>
When the boost kthreads are created on systems with nohz_full CPUs,
the cpus_allowed_ptr is set to housekeeping_cpumask(HK_FLAG_KTHREAD).
However, when the rcu_boost_kthread_setaffinity() is called, the original
affinity will be changed and these kthreads can subsequently run on
nohz_full CPUs.  This commit makes rcu_boost_kthread_setaffinity()
restrict these boost kthreads to housekeeping CPUs.

Signed-off-by: Zqiang &lt;qiang.zhang1211@gmail.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Improve tree_plugin.h comments and add code cleanups</title>
<updated>2021-12-01T01:25:20Z</updated>
<author>
<name>Zhouyi Zhou</name>
<email>zhouzhouyi@gmail.com</email>
</author>
<published>2021-10-24T00:36:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=17ea3718824912e773b0fd78579694b2e75ee597'/>
<id>urn:sha1:17ea3718824912e773b0fd78579694b2e75ee597</id>
<content type='text'>
This commit cleans up some comments and code in kernel/rcu/tree_plugin.h.

Signed-off-by: Zhouyi Zhou &lt;zhouzhouyi@gmail.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: in_irq() cleanup</title>
<updated>2021-12-01T01:25:20Z</updated>
<author>
<name>Changbin Du</name>
<email>changbin.du@gmail.com</email>
</author>
<published>2021-09-28T00:21:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2407a64f8045552203ee5cb9904ce75ce2fceef4'/>
<id>urn:sha1:2407a64f8045552203ee5cb9904ce75ce2fceef4</id>
<content type='text'>
This commit replaces the obsolete and ambiguous macro in_irq() with its
shiny new in_hardirq() equivalent.

Signed-off-by: Changbin Du &lt;changbin.du@gmail.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Move rcu_needs_cpu() to tree.c</title>
<updated>2021-12-01T01:24:47Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@kernel.org</email>
</author>
<published>2021-09-27T21:30:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bc849e9192c75833a85f2e9376a265ab31f8eec7'/>
<id>urn:sha1:bc849e9192c75833a85f2e9376a265ab31f8eec7</id>
<content type='text'>
Now that RCU_FAST_NO_HZ is no more, there is but one implementation of
the rcu_needs_cpu() function.  This commit therefore moves this function
from kernel/rcu/tree_plugin.c to kernel/rcu/tree.c.

Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcu: Remove the RCU_FAST_NO_HZ Kconfig option</title>
<updated>2021-12-01T01:24:47Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@kernel.org</email>
</author>
<published>2021-09-27T21:18:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e2c73a6860bdf54f2c6bf8cddc34ddc91a1343e1'/>
<id>urn:sha1:e2c73a6860bdf54f2c6bf8cddc34ddc91a1343e1</id>
<content type='text'>
All of the uses of CONFIG_RCU_FAST_NO_HZ=y that I have seen involve
systems with RCU callbacks offloaded.  In this situation, all that this
Kconfig option does is slow down idle entry/exit with an additional
allways-taken early exit.  If this is the only use case, then this
Kconfig option nothing but an attractive nuisance that needs to go away.

This commit therefore removes the RCU_FAST_NO_HZ Kconfig option.

Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
</feed>
