<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/kernel/rcu/rcuperf.c, branch linux-5.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-10-05T18:49:36Z</updated>
<entry>
<title>rcu: Remove unused variable rcu_perf_writer_state</title>
<updated>2019-10-05T18:49:36Z</updated>
<author>
<name>Ethan Hansen</name>
</author>
<published>2019-08-08T00:27:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3ffb206ddd7f07d83bafd10e1b403df57055af4'/>
<id>urn:sha1:b3ffb206ddd7f07d83bafd10e1b403df57055af4</id>
<content type='text'>
The variable rcu_perf_writer_state is declared and initialized,
but is never actually referenced. Remove it to clean code.

Signed-off-by: Ethan Hansen &lt;1ethanhansen@gmail.com&gt;
[ paulmck: Also removed unused macros assigned to that variable. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>rcuperf: Make rcuperf kernel test more robust for !expedited mode</title>
<updated>2019-08-01T21:30:22Z</updated>
<author>
<name>Joel Fernandes (Google)</name>
</author>
<published>2019-07-04T04:34:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77e9752ce69f36f1be4e366373727fb7921f5909'/>
<id>urn:sha1:77e9752ce69f36f1be4e366373727fb7921f5909</id>
<content type='text'>
It is possible that the rcuperf kernel test runs concurrently with init
starting up.  During this time, the system is running all grace periods
as expedited.  However, rcuperf can also be run for normal GP tests.
Right now, it depends on a holdoff time before starting the test to
ensure grace periods start later. This works fine with the default
holdoff time however it is not robust in situations where init takes
greater than the holdoff time to finish running. Or, as in my case:

I modified the rcuperf test locally to also run a thread that did
preempt disable/enable in a loop. This had the effect of slowing down
init. The end result was that the "batches:" counter in rcuperf was 0
causing a division by 0 error in the results. This counter was 0 because
only expedited GPs seem to happen, not normal ones which led to the
rcu_state.gp_seq counter remaining constant across grace periods which
unexpectedly happen to be expedited. The system was running expedited
RCU all the time because rcu_unexpedited_gp() would not have run yet
from init.  In other words, the test would concurrently with init
booting in expedited GP mode.

To fix this properly, this commit waits until system_state is set to
SYSTEM_RUNNING before starting the test.  This change is made just
before kernel_init() invokes rcu_end_inkernel_boot(), and this latter
is what turns off boot-time expediting of RCU grace periods.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcuperf: Fix perf_type module-parameter description</title>
<updated>2019-08-01T21:30:22Z</updated>
<author>
<name>Xiao Yang</name>
</author>
<published>2019-05-31T15:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3f3886c59f649ace424d132bd8c06e3611c71a8'/>
<id>urn:sha1:b3f3886c59f649ace424d132bd8c06e3611c71a8</id>
<content type='text'>
The rcu_bh rcuperf type was removed by commit 620d246065cd("rcuperf:
Remove the "rcu_bh" and "sched" torture types"), but it lives on in the
MODULE_PARM_DESC() of perf_type.  This commit therefore changes that
module-parameter description to substitute srcu for rcu_bh.

Signed-off-by: Xiao Yang &lt;ice_yangxiao@163.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcuperf: Fix cleanup path for invalid perf_type strings</title>
<updated>2019-03-26T21:42:53Z</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=ad092c027713a68a34168942a5ef422e42e039f4'/>
<id>urn:sha1:ad092c027713a68a34168942a5ef422e42e039f4</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>Merge branches 'doc.2019.01.26a', 'fixes.2019.01.26a', 'sil.2019.01.26a', 'spdx.2019.02.09a', 'srcu.2019.01.26a' and 'torture.2019.01.26a' into HEAD</title>
<updated>2019-02-09T16:47:52Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2019-02-09T16:47:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7ffb4eb9a6d89678e7f62461737899f88dab64e'/>
<id>urn:sha1:e7ffb4eb9a6d89678e7f62461737899f88dab64e</id>
<content type='text'>
doc.2019.01.26a:  Documentation updates.
fixes.2019.01.26a:  Miscellaneous fixes.
sil.2019.01.26a:  Removal of a few more spin_is_locked() instances.
spdx.2019.02.09a:  Add SPDX identifiers to RCU files
srcu.2019.01.26a:  SRCU updates.
torture.2019.01.26a: Torture-test updates.
</content>
</entry>
<entry>
<title>rcu/rcuperf: Convert to SPDX license identifier</title>
<updated>2019-02-09T16:43:35Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2019-01-17T18:09:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8bf05ed3adf9c40f2f47a967dcfc713d26b07247'/>
<id>urn:sha1:8bf05ed3adf9c40f2f47a967dcfc713d26b07247</id>
<content type='text'>
Replace the license boiler plate with a SPDX license identifier.
While in the area, update an email address.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.ibm.com&gt;
Reviewed-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>rcuperf: Stop abusing IS_ENABLED()</title>
<updated>2019-01-25T23:37:11Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-12-28T15:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e838a7d66ee2bb7abb46214cb9a3505749e29505'/>
<id>urn:sha1:e838a7d66ee2bb7abb46214cb9a3505749e29505</id>
<content type='text'>
The ever-evolving IS_ENABLED() macro is intended for CONFIG_* Kconfig
options, but rcuperf currently uses it for the decidedly non-CONFIG_*
MODULE macro.  In the spirit of not inviting trouble, this commit
substitutes tried-and-true #ifdef.

Reported-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.ibm.com&gt;
Acked-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branches 'doc.2018.08.30a', 'dynticks.2018.08.30b', 'srcu.2018.08.30b' and 'torture.2018.08.29a' into HEAD</title>
<updated>2018-08-30T23:12:53Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-08-30T23:12:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b56ada120921fbb0a4fb2a5bee163717182e7e9e'/>
<id>urn:sha1:b56ada120921fbb0a4fb2a5bee163717182e7e9e</id>
<content type='text'>
doc.2018.08.30a: Documentation updates
dynticks.2018.08.30b: RCU flavor consolidation updates and cleanups
srcu.2018.08.30b: SRCU updates
torture.2018.08.29a: Torture-test updates
</content>
</entry>
<entry>
<title>rcuperf: Remove the "rcu_bh" and "sched" torture types</title>
<updated>2018-08-30T23:03:30Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-07-08T01:25:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=620d246065cdca4c4a8ad9ed28a191665cd3d457'/>
<id>urn:sha1:620d246065cdca4c4a8ad9ed28a191665cd3d457</id>
<content type='text'>
Now that the RCU-bh and RCU-sched update-side functions are simple
wrappers around their RCU counterparts, there isn't a whole lot of point
in testing them.  This commit therefore removes the "rcu_bh" and "sched"
torture types from rcuperf.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>rcuperf: Warn on bad perf type for built-in tests</title>
<updated>2018-08-29T16:20:48Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2018-07-08T01:26:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0288064425ff9a5e05c8c0fdba6ec7681dd3330'/>
<id>urn:sha1:f0288064425ff9a5e05c8c0fdba6ec7681dd3330</id>
<content type='text'>
When running a built-in rcuperf test, specifying an invalid perf type
results in what looks like a hard hang, with the error messages hidden
by other boot-time output.  This commit therefore executes a WARN_ON()
in this case so that the splat appears just following the error messages.

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