<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/Documentation/RCU/Design, branch v5.8</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>rcu: Make rcu_read_unlock_special() safe for rq/pi locks</title>
<updated>2020-04-27T18:03:50+00:00</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@kernel.org</email>
</author>
<published>2020-02-15T22:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e4453d8a1c56050df320ef54f339ffa4a9513d0a'/>
<id>e4453d8a1c56050df320ef54f339ffa4a9513d0a</id>
<content type='text'>
The scheduler is currently required to hold rq/pi locks across the entire
RCU read-side critical section or not at all.  This is inconvenient and
leaves traps for the unwary, including the author of this commit.

But now that excessively long grace periods enable scheduling-clock
interrupts for holdout nohz_full CPUs, the nohz_full rescue logic in
rcu_read_unlock_special() can be dispensed with.  In other words, the
rcu_read_unlock_special() function can refrain from doing wakeups unless
such wakeups are guaranteed safe.

This commit therefore avoids unsafe wakeups, freeing the scheduler to
hold rq/pi locks across rcu_read_unlock() even if the corresponding RCU
read-side critical section might have been preempted.  This commit also
updates RCU's requirements documentation.

This commit is inspired by a patch from Lai Jiangshan:
https://lore.kernel.org/lkml/20191102124559.1135-2-laijs@linux.alibaba.com
This commit is further intended to be a step towards his goal of permitting
the inlining of RCU-preempt's rcu_read_lock() and rcu_read_unlock().

Cc: Lai Jiangshan &lt;laijs@linux.alibaba.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The scheduler is currently required to hold rq/pi locks across the entire
RCU read-side critical section or not at all.  This is inconvenient and
leaves traps for the unwary, including the author of this commit.

But now that excessively long grace periods enable scheduling-clock
interrupts for holdout nohz_full CPUs, the nohz_full rescue logic in
rcu_read_unlock_special() can be dispensed with.  In other words, the
rcu_read_unlock_special() function can refrain from doing wakeups unless
such wakeups are guaranteed safe.

This commit therefore avoids unsafe wakeups, freeing the scheduler to
hold rq/pi locks across rcu_read_unlock() even if the corresponding RCU
read-side critical section might have been preempted.  This commit also
updates RCU's requirements documentation.

This commit is inspired by a patch from Lai Jiangshan:
https://lore.kernel.org/lkml/20191102124559.1135-2-laijs@linux.alibaba.com
This commit is further intended to be a step towards his goal of permitting
the inlining of RCU-preempt's rcu_read_lock() and rcu_read_unlock().

Cc: Lai Jiangshan &lt;laijs@linux.alibaba.com&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>doc/RCU/Design: Remove remaining HTML tags in ReST files</title>
<updated>2020-02-27T15:03:13+00:00</updated>
<author>
<name>SeongJae Park</name>
<email>sjpark@amazon.de</email>
</author>
<published>2020-01-06T20:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d18c265fbf19de7716e6e3054b752594133b0739'/>
<id>d18c265fbf19de7716e6e3054b752594133b0739</id>
<content type='text'>
Commit ccc9971e2147 ("docs: rcu: convert some articles from html to
ReST") has converted a few of html RCU docs into ReST files, but a few
of html tags which not supported on rst is remaining.  This commit
converts those to ReST appropriate alternatives.

Reviewed-by: Madhuparna Bhowmik &lt;madhuparnabhowmik04@gmail.com&gt;
Signed-off-by: SeongJae Park &lt;sjpark@amazon.de&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit ccc9971e2147 ("docs: rcu: convert some articles from html to
ReST") has converted a few of html RCU docs into ReST files, but a few
of html tags which not supported on rst is remaining.  This commit
converts those to ReST appropriate alternatives.

Reviewed-by: Madhuparna Bhowmik &lt;madhuparnabhowmik04@gmail.com&gt;
Signed-off-by: SeongJae Park &lt;sjpark@amazon.de&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Documentation: Rename rcu_node_context_switch() to rcu_note_context_switch()</title>
<updated>2019-10-29T09:48:29+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2019-08-27T16:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b1ec18eae0b63a19a05a846c084aa84cbd9c87c6'/>
<id>b1ec18eae0b63a19a05a846c084aa84cbd9c87c6</id>
<content type='text'>
While Paul was explaining some RCU magic I noticed a typo in
rcu_note_context_switch().  As a result, this commit replaces
rcu_node_context_switch() with rcu_note_context_switch().

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While Paul was explaining some RCU magic I noticed a typo in
rcu_note_context_switch().  As a result, this commit replaces
rcu_node_context_switch() with rcu_note_context_switch().

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Restore docs "rcu: Restore barrier() to rcu_read_lock() and rcu_read_unlock()"</title>
<updated>2019-10-29T09:48:23+00:00</updated>
<author>
<name>Joel Fernandes (Google)</name>
<email>joel@joelfernandes.org</email>
</author>
<published>2019-08-01T21:39:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=71cb46ae46bda16e766a8957bc68396002767352'/>
<id>71cb46ae46bda16e766a8957bc68396002767352</id>
<content type='text'>
This restores docs back in ReST format.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This restores docs back in ReST format.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Restore docs "treewide: Rename rcu_dereference_raw_notrace() to _check()"</title>
<updated>2019-10-29T09:48:14+00:00</updated>
<author>
<name>Joel Fernandes (Google)</name>
<email>joel@joelfernandes.org</email>
</author>
<published>2019-08-01T21:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d7424e283cc4a86e7b1eb7779f60f2327119e8bf'/>
<id>d7424e283cc4a86e7b1eb7779f60f2327119e8bf</id>
<content type='text'>
This restores docs back in ReST format.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This restores docs back in ReST format.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: rcu: Correct links referring to titles</title>
<updated>2019-10-29T09:48:13+00:00</updated>
<author>
<name>Joel Fernandes (Google)</name>
<email>joel@joelfernandes.org</email>
</author>
<published>2019-08-01T21:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=07335c16a39c213c9ac82213a3cd084f0ade4b50'/>
<id>07335c16a39c213c9ac82213a3cd084f0ade4b50</id>
<content type='text'>
Mauro's auto conversion broken these links, fix them.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mauro's auto conversion broken these links, fix them.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: rcu: convert some articles from html to ReST</title>
<updated>2019-10-29T09:48:12+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab+samsung@kernel.org</email>
</author>
<published>2019-08-01T21:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ccc9971e2147225cb2d25e5543d6757988dd0a1d'/>
<id>ccc9971e2147225cb2d25e5543d6757988dd0a1d</id>
<content type='text'>
There are 4 RCU articles that are written on html format.

The way they are, they can't be part of the Linux Kernel
documentation body nor share the styles and pdf output.

So, convert them to ReST format.

This way, make htmldocs and make pdfdocs will produce a
documentation output that will be like the original ones, but
will be part of the Linux Kernel documentation body.

Part of the conversion was done with the help of pandoc, but
the result had some broken things that had to be manually
fixed.

Following are manual changes Mauro made when doing the automatic conversion:
Quoting from: https://lore.kernel.org/rcu/20190726154550.5eeae294@coco.lan/

&gt; &gt; At least the pandoc's version I used here has a bug: its conversion
&gt; &gt; from html to ReST on those files only start after a &lt;body&gt; tag - or
&gt; &gt; when the first quiz table starts. I only discovered that adding a
&gt; &gt; &lt;body&gt; at the beginning of the file solve this book at the last
&gt; &gt; conversions.
&gt; &gt;
&gt; &gt; So, for most html-&gt;ReST conversions, I manually converted the first
&gt; &gt; part of the document, basically stripping html paragraph tags and
&gt; &gt; by replacing highlights by the ReST syntax.
&gt; &gt;
&gt; &gt; Also, all the quiz tables seem to assume some javascript macro or
&gt; &gt; css style that would be hiding the answer part until the mouse moves
&gt; &gt; to it. Such macro/css was not there at the kernel tree. So, the quiz
&gt; &gt; answers have the same color as the background, making them invisible.
&gt; &gt; Even if we had such macro/css, this is not portable for pdf/LaTeX output
&gt; &gt; (and I'm not sure if this would work with ePub).
&gt; &gt;
&gt; &gt; So, I ended by manually doing the table conversion.
&gt; &gt;
&gt; &gt; Finally, I double-checked if the conversions ended ok, addressing any
&gt; &gt; issues that might have heppened.
&gt; &gt;
&gt; &gt; So, after both automatic conversion and manual fixes, I opened both the
&gt; &gt; html files produced by Sphinx and the original ones and compared them
&gt; &gt; line per line (except for the indexes, as Sphinx produces them
&gt; &gt; automatically), in order to see if all information from the original
&gt; &gt; files will be there on a format close to what we have on other ReST
&gt; &gt; files, fixing any pending issues if any.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab+samsung@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are 4 RCU articles that are written on html format.

The way they are, they can't be part of the Linux Kernel
documentation body nor share the styles and pdf output.

So, convert them to ReST format.

This way, make htmldocs and make pdfdocs will produce a
documentation output that will be like the original ones, but
will be part of the Linux Kernel documentation body.

Part of the conversion was done with the help of pandoc, but
the result had some broken things that had to be manually
fixed.

Following are manual changes Mauro made when doing the automatic conversion:
Quoting from: https://lore.kernel.org/rcu/20190726154550.5eeae294@coco.lan/

&gt; &gt; At least the pandoc's version I used here has a bug: its conversion
&gt; &gt; from html to ReST on those files only start after a &lt;body&gt; tag - or
&gt; &gt; when the first quiz table starts. I only discovered that adding a
&gt; &gt; &lt;body&gt; at the beginning of the file solve this book at the last
&gt; &gt; conversions.
&gt; &gt;
&gt; &gt; So, for most html-&gt;ReST conversions, I manually converted the first
&gt; &gt; part of the document, basically stripping html paragraph tags and
&gt; &gt; by replacing highlights by the ReST syntax.
&gt; &gt;
&gt; &gt; Also, all the quiz tables seem to assume some javascript macro or
&gt; &gt; css style that would be hiding the answer part until the mouse moves
&gt; &gt; to it. Such macro/css was not there at the kernel tree. So, the quiz
&gt; &gt; answers have the same color as the background, making them invisible.
&gt; &gt; Even if we had such macro/css, this is not portable for pdf/LaTeX output
&gt; &gt; (and I'm not sure if this would work with ePub).
&gt; &gt;
&gt; &gt; So, I ended by manually doing the table conversion.
&gt; &gt;
&gt; &gt; Finally, I double-checked if the conversions ended ok, addressing any
&gt; &gt; issues that might have heppened.
&gt; &gt;
&gt; &gt; So, after both automatic conversion and manual fixes, I opened both the
&gt; &gt; html files produced by Sphinx and the original ones and compared them
&gt; &gt; line per line (except for the indexes, as Sphinx produces them
&gt; &gt; automatically), in order to see if all information from the original
&gt; &gt; files will be there on a format close to what we have on other ReST
&gt; &gt; files, fixing any pending issues if any.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab+samsung@kernel.org&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert docs from "treewide: Rename rcu_dereference_raw_notrace() to _check()"</title>
<updated>2019-10-29T09:46:55+00:00</updated>
<author>
<name>Joel Fernandes (Google)</name>
<email>joel@joelfernandes.org</email>
</author>
<published>2019-08-01T21:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c07e6f36bc321d70e8255c30d327e299b8301146'/>
<id>c07e6f36bc321d70e8255c30d327e299b8301146</id>
<content type='text'>
This reverts docs from commit 355e9972da81e803bbb825b76106ae9b358caf8e.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts docs from commit 355e9972da81e803bbb825b76106ae9b358caf8e.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert docs from "rcu: Restore barrier() to rcu_read_lock() and rcu_read_unlock()"</title>
<updated>2019-10-29T09:43:50+00:00</updated>
<author>
<name>Joel Fernandes (Google)</name>
<email>joel@joelfernandes.org</email>
</author>
<published>2019-08-01T21:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=97df75cde57f0a24075200e22d9e2cfb1f2e195b'/>
<id>97df75cde57f0a24075200e22d9e2cfb1f2e195b</id>
<content type='text'>
This reverts docs from commit d6b9cd7dc8e041ee83cb1362fce59a3cdb1f2709.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts docs from commit d6b9cd7dc8e041ee83cb1362fce59a3cdb1f2709.

Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
[ paulmck: Added Joel's SoB per Stephen Rothwell feedback. ]
[ paulmck: Joel approved via private email. ]
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branches 'consolidate.2019.08.01b', 'fixes.2019.08.12a', 'lists.2019.08.13a' and 'torture.2019.08.01b' into HEAD</title>
<updated>2019-08-13T21:30:30+00:00</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.ibm.com</email>
</author>
<published>2019-08-13T21:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=31da067023dd0e35c5ec5556f0be7a31e5588277'/>
<id>31da067023dd0e35c5ec5556f0be7a31e5588277</id>
<content type='text'>
consolidate.2019.08.01b: Further consolidation cleanups
fixes.2019.08.12a: Miscellaneous fixes
lists.2019.08.13a: Optional lockdep arguments for RCU list macros
torture.2019.08.01b: Torture-test updates
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
consolidate.2019.08.01b: Further consolidation cleanups
fixes.2019.08.12a: Miscellaneous fixes
lists.2019.08.13a: Optional lockdep arguments for RCU list macros
torture.2019.08.01b: Torture-test updates
</pre>
</div>
</content>
</entry>
</feed>
