<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/rcu/tree_plugin.h, branch v4.20</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.20</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.20'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2018-08-30T23:03:52Z</updated>
<entry>
<title>rcu: Switch -&gt;dynticks to rcu_data structure, remove rcu_dynticks</title>
<updated>2018-08-30T23:03:52Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=dc5a4f2932f18568bb9d8cdbe2139a8ddbc28bb8'/>
<id>urn:sha1:dc5a4f2932f18568bb9d8cdbe2139a8ddbc28bb8</id>
<content type='text'>
This commit move -&gt;dynticks from the rcu_dynticks structure to the
rcu_data structure, replacing the field of the same name.  It also updates
the code to access -&gt;dynticks from the rcu_data structure and to use the
rcu_data structure rather than following to now-gone -&gt;dynticks field
to the now-gone rcu_dynticks structure.  While in the area, this commit
also fixes up comments.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Switch dyntick nesting counters to rcu_data structure</title>
<updated>2018-08-30T23:03:51Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4c5273bf2b5ed9b585e470dda19c09c875a9fbbd'/>
<id>urn:sha1:4c5273bf2b5ed9b585e470dda19c09c875a9fbbd</id>
<content type='text'>
This commit removes -&gt;dynticks_nesting and -&gt;dynticks_nmi_nesting from
the rcu_dynticks structure and updates the code to access them from the
rcu_data structure.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Switch urgent quiescent-state requests to rcu_data structure</title>
<updated>2018-08-30T23:03:50Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2dba13f0b6c2b26ff371b8927ac58d20a7d94713'/>
<id>urn:sha1:2dba13f0b6c2b26ff371b8927ac58d20a7d94713</id>
<content type='text'>
This commit removes -&gt;rcu_need_heavy_qs and -&gt;rcu_urgent_qs from the
rcu_dynticks structure and updates the code to access them from the
rcu_data structure.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Switch lazy counts to rcu_data structure</title>
<updated>2018-08-30T23:03:49Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c458a89e964dbf3c56b23eca2018bd0e2380969d'/>
<id>urn:sha1:c458a89e964dbf3c56b23eca2018bd0e2380969d</id>
<content type='text'>
This commit removes -&gt;all_lazy, -&gt;nonlazy_posted and -&gt;nonlazy_posted_snap
from the rcu_dynticks structure and updates the code to access them from
the rcu_data structure.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Switch last accelerate/advance to rcu_data structure</title>
<updated>2018-08-30T23:03:48Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5998a75adbf4f85e63b06fa7723633cc84d7129b'/>
<id>urn:sha1:5998a75adbf4f85e63b06fa7723633cc84d7129b</id>
<content type='text'>
This commit removes -&gt;last_accelerate and -&gt;last_advance_all from the
rcu_dynticks structure and updates the code to access them from the
rcu_data structure.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Switch -&gt;tick_nohz_enabled_snap to rcu_data structure</title>
<updated>2018-08-30T23:03:47Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-08-04T04:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0fd79e7521bc944522c3c97f40f3d25619e329f4'/>
<id>urn:sha1:0fd79e7521bc944522c3c97f40f3d25619e329f4</id>
<content type='text'>
This commit removes -&gt;tick_nohz_enabled_snap from the rcu_dynticks
structure and updates the code to access it from the rcu_data
structure.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Avoid resched_cpu() when rescheduling the current CPU</title>
<updated>2018-08-30T23:03:45Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-07-26T20:44:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fced9c8cfe6bc8a26dbbf785927aa673c83a7a35'/>
<id>urn:sha1:fced9c8cfe6bc8a26dbbf785927aa673c83a7a35</id>
<content type='text'>
The resched_cpu() interface is quite handy, but it does acquire the
specified CPU's runqueue lock, which does not come for free.  This
commit therefore substitutes the following when directing resched_cpu()
at the current CPU:

	set_tsk_need_resched(current);
	set_preempt_need_resched();

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
</content>
</entry>
<entry>
<title>rcu: More aggressively enlist scheduler aid for nohz_full CPUs</title>
<updated>2018-08-30T23:03:44Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-07-25T18:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d3052109c0bc9e536d17d627ae628ed8ceb6928c'/>
<id>urn:sha1:d3052109c0bc9e536d17d627ae628ed8ceb6928c</id>
<content type='text'>
Because nohz_full CPUs can leave the scheduler-clock interrupt disabled
even when in kernel mode, RCU cannot rely on rcu_check_callbacks() to
enlist the scheduler's aid in extracting a quiescent state from such CPUs.
This commit therefore more aggressively uses resched_cpu() on nohz_full
CPUs that fail to pass through a quiescent state in a timely manner.
By default, the resched_cpu() beating starts 300 milliseconds into the
quiescent state.

While in the neighborhood, add a -&gt;last_fqs_resched field to the rcu_data
structure in order to rate-limit resched_cpu() calls from the RCU
grace-period kthread.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Compute jiffies_till_sched_qs from other kernel parameters</title>
<updated>2018-08-30T23:03:43Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-07-25T18:25:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c06aed0e31008a248c1841f1b7fc80e9ee242a31'/>
<id>urn:sha1:c06aed0e31008a248c1841f1b7fc80e9ee242a31</id>
<content type='text'>
The jiffies_till_sched_qs value used to determine how old a grace period
must be before RCU enlists the help of the scheduler to force a quiescent
state on the holdout CPU.  Currently, this defaults to HZ/10 regardless of
system size and may be set only at boot time.  This can be a problem for
very large systems, because if the values of the jiffies_till_first_fqs
and jiffies_till_next_fqs kernel parameters are left at their defaults,
they are calculated to increase as the number of CPUs actually configured
on the system increases.  Thus, on a sufficiently large system, RCU would
enlist the help of the scheduler before the grace-period kthread had a
chance to scan for idle CPUs, which wastes CPU time.

This commit therefore allows jiffies_till_sched_qs to be set, if desired,
but if left as default, computes is as jiffies_till_first_fqs plus twice
jiffies_till_next_fqs, thus allowing three force-quiescent-state scans
for idle CPUs.  This scales with the number of CPUs, providing sensible
default values.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Eliminate -&gt;rcu_qs_ctr from the rcu_dynticks structure</title>
<updated>2018-08-30T23:03:42Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2018-07-11T15:09:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7e28c5af4ef6b539334aa5de40feca0c041c94df'/>
<id>urn:sha1:7e28c5af4ef6b539334aa5de40feca0c041c94df</id>
<content type='text'>
The -&gt;rcu_qs_ctr counter was intended to allow providing a lightweight
report of a quiescent state to all RCU flavors.  But now that there is
only one flavor of RCU in any one running kernel, there is no point in
having this feature.  This commit therefore removes the -&gt;rcu_qs_ctr
field from the rcu_dynticks structure and the -&gt;rcu_qs_ctr_snap field
from the rcu_data structure.  This results in the "rqc" option to the
rcu_fqs trace event no longer being used, so this commit also removes the
"rqc" description from the header comment.

While in the neighborhood, this commit also causes the forward-progress
request .rcu_need_heavy_qs be set one jiffies_till_sched_qs interval
later in the grace period than the first setting of .rcu_urgent_qs.

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