<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/kernel/rcu/rcuperf.c, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-05-31T13:46:30Z</updated>
<entry>
<title>rcuperf: Fix cleanup path for invalid perf_type strings</title>
<updated>2019-05-31T13:46:30Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2019-03-21T17:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=506b28fb998280c6b704945893520c97f7311a1c'/>
<id>urn:sha1:506b28fb998280c6b704945893520c97f7311a1c</id>
<content type='text'>
[ Upstream commit ad092c027713a68a34168942a5ef422e42e039f4 ]

If the specified rcuperf.perf_type is not in the rcu_perf_init()
function's perf_ops[] array, rcuperf prints some console messages and
then invokes rcu_perf_cleanup() to set state so that a future torture
test can run.  However, rcu_perf_cleanup() also attempts to end the
test that didn't actually start, and in doing so relies on the value
of cur_ops, a value that is not particularly relevant in this case.
This can result in confusing output or even follow-on failures due to
attempts to use facilities that have not been properly initialized.

This commit therefore sets the value of cur_ops to NULL in this case and
inserts a check near the beginning of rcu_perf_cleanup(), thus avoiding
relying on an irrelevant cur_ops value.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.ibm.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branches 'fixes1.2018.07.12b' and 'torture1.2018.07.12b' into HEAD</title>
<updated>2018-07-12T22:42:41Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-07-12T22:42:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18952651dae8efcc6d565c97f8fe5629b399cb3e'/>
<id>urn:sha1:18952651dae8efcc6d565c97f8fe5629b399cb3e</id>
<content type='text'>
fixes1.2018.07.12b: Post-gp_seq miscellaneous fixes
torture1.2018.07.12b: Post-gp_seq torture-test updates
</content>
</entry>
<entry>
<title>rcuperf: Remove unused torturing_tasks() function</title>
<updated>2018-07-12T22:42:02Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-05-17T18:09:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d3625841dcee549653b6f50ffa4e6431305035a'/>
<id>urn:sha1:2d3625841dcee549653b6f50ffa4e6431305035a</id>
<content type='text'>
The torturing_tasks() function in rcuperf.c is not used, so this commit
removes it.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Remove "inline" from rcu_perf_print_module_parms()</title>
<updated>2018-07-12T22:39:19Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-05-17T18:33:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9622179519c52ead944c3b6a07aed9c6db3659e2'/>
<id>urn:sha1:9622179519c52ead944c3b6a07aed9c6db3659e2</id>
<content type='text'>
This function is in rcuperf.c, which is not an include file, so there
is no problem dropping the "inline", especially given that this function
is invoked only twice per rcuperf run.  This commit therefore delegates
the inlining decision to the compiler by dropping the "inline".

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>
</author>
<published>2018-05-14T20:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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: Correctly handle grace-period sequence wrap</title>
<updated>2018-07-12T22:38:55Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-05-15T22:24:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d72193123c81ae6123d108b3be2096f3f13b25a6'/>
<id>urn:sha1:d72193123c81ae6123d108b3be2096f3f13b25a6</id>
<content type='text'>
The new -&gt;gq_seq grace-period sequence numbers must be shifted down,
which give artifacts when these numbers wrap.  This commit therefore
enables rcutorture and rcuperf to handle grace-period sequence numbers
even if they do wrap.  It does this by allowing a special subtraction
function to be specified, and this function subtracts before shifting.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Make rcutorture's batches-completed API use -&gt;gp_seq</title>
<updated>2018-07-12T21:27:47Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-04-27T18:39:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17ef2fe97c8c8e754e4a702c42f8e5b0ffadf4dd'/>
<id>urn:sha1:17ef2fe97c8c8e754e4a702c42f8e5b0ffadf4dd</id>
<content type='text'>
The rcutorture test invokes rcu_batches_started(),
rcu_batches_completed(), rcu_batches_started_bh(),
rcu_batches_completed_bh(), rcu_batches_started_sched(), and
rcu_batches_completed_sched() to do grace-period consistency checks,
and rcuperf uses the _completed variants for statistics.
These functions use -&gt;gpnum and -&gt;completed.  This commit therefore
replaces them with rcu_get_gp_seq(), rcu_bh_get_gp_seq(), and
rcu_sched_get_gp_seq(), adjusting rcutorture and rcuperf to make
use of them.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>torture: Keep old-school dmesg format</title>
<updated>2018-06-25T18:30:10Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-05-15T19:25:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60500037637397dcc8ea3d3c2f16e05ea6695a86'/>
<id>urn:sha1:60500037637397dcc8ea3d3c2f16e05ea6695a86</id>
<content type='text'>
This commit adds "#define pr_fmt(fmt) fmt" to the torture-test files
in order to keep the current dmesg format.  Once Joe's commits have
hit mainline, these definitions will be changed in order to automatically
generate the dmesg line prefix that the scripts expect.  This will have
the beneficial side-effect of allowing printk() formats to be used more
widely and of shortening some pr_*() lines.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Cc: Joe Perches &lt;joe@perches.com&gt;
</content>
</entry>
<entry>
<title>torture: Make online/offline messages appear only for verbose=2</title>
<updated>2018-06-25T18:30:10Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-05-09T17:29:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90127d605f403d814f4986436871210bf8ceb335'/>
<id>urn:sha1:90127d605f403d814f4986436871210bf8ceb335</id>
<content type='text'>
Some bugs reproduce quickly only at high CPU-hotplug rates, so the
rcutorture TREE03 scenario now has only 200 milliseconds spacing between
CPU-hotplug operations.  At this rate, the torture-test pair of console
messages per operation becomes a bit voluminous.  This commit therefore
converts the torture-test set of "verbose" kernel-boot arguments from
bool to int, and prints the extra console messages only when verbose=2.
The default is still verbose=1.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()</title>
<updated>2018-05-15T17:27:29Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-03-03T00:35:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cee4393989333795ae04dc9f3b83a578afe3fca6'/>
<id>urn:sha1:cee4393989333795ae04dc9f3b83a578afe3fca6</id>
<content type='text'>
Commit e31d28b6ab8f ("trace: Eliminate cond_resched_rcu_qs() in favor
of cond_resched()") substituted cond_resched() for the earlier call
to cond_resched_rcu_qs().  However, the new-age cond_resched() does
not do anything to help RCU-tasks grace periods because (1) RCU-tasks
is only enabled when CONFIG_PREEMPT=y and (2) cond_resched() is a
complete no-op when preemption is enabled.  This situation results
in hangs when running the trace benchmarks.

A number of potential fixes were discussed on LKML
(https://lkml.kernel.org/r/20180224151240.0d63a059@vmware.local.home),
including making cond_resched() not be a no-op; making cond_resched()
not be a no-op, but only when running tracing benchmarks; reverting
the aforementioned commit (which works because cond_resched_rcu_qs()
does provide an RCU-tasks quiescent state; and adding a call to the
scheduler/RCU rcu_note_voluntary_context_switch() function.  All were
deemed unsatisfactory, either due to added cond_resched() overhead or
due to magic functions inviting cargo culting.

This commit renames cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs(),
which provides a clear hint as to what this function is doing and
why and where it should be used, and then replaces the call to
cond_resched() with cond_resched_tasks_rcu_qs() in the trace benchmark's
benchmark_event_kthread() function.

Reported-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Tested-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
</content>
</entry>
</feed>
