Commit 41abcf32 authored by Paul E. McKenney's avatar Paul E. McKenney

documentation: Add real-time requirements from CPU-bound workloads

This commit records RCU's responsibility to avoid degrading latencies
of CPUs running tight loops within properly configured workloads,
both in kernel and in userspace.
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 70946a44
<!-- DO NOT HAND EDIT. --> <!-- DO NOT HAND EDIT. -->
<!-- Instead, edit Documentation/RCU/Design/Requirements/Requirements.htmlx and run 'sh htmlqqz.sh Documentation/RCU/Design/Requirements/Requirements' --> <!-- Instead, edit Requirements.htmlx and run 'sh htmlqqz.sh Requirements' -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
...@@ -2170,6 +2170,14 @@ up to and including systems with 4096 CPUs. ...@@ -2170,6 +2170,14 @@ up to and including systems with 4096 CPUs.
This real-time requirement motivated the grace-period kthread, which This real-time requirement motivated the grace-period kthread, which
also simplified handling of a number of race conditions. also simplified handling of a number of race conditions.
<p>
RCU must avoid degrading real-time response for CPU-bound threads, whether
executing in usermode (which is one use case for
<tt>CONFIG_NO_HZ_FULL=y</tt>) or in the kernel.
That said, CPU-bound loops in the kernel must execute
<tt>cond_resched_rcu_qs()</tt> at least once per few tens of milliseconds
in order to avoid receiving an IPI from RCU.
<p> <p>
Finally, RCU's status as a synchronization primitive means that Finally, RCU's status as a synchronization primitive means that
any RCU failure can result in arbitrary memory corruption that can be any RCU failure can result in arbitrary memory corruption that can be
......
...@@ -2337,6 +2337,14 @@ up to and including systems with 4096 CPUs. ...@@ -2337,6 +2337,14 @@ up to and including systems with 4096 CPUs.
This real-time requirement motivated the grace-period kthread, which This real-time requirement motivated the grace-period kthread, which
also simplified handling of a number of race conditions. also simplified handling of a number of race conditions.
<p>
RCU must avoid degrading real-time response for CPU-bound threads, whether
executing in usermode (which is one use case for
<tt>CONFIG_NO_HZ_FULL=y</tt>) or in the kernel.
That said, CPU-bound loops in the kernel must execute
<tt>cond_resched_rcu_qs()</tt> at least once per few tens of milliseconds
in order to avoid receiving an IPI from RCU.
<p> <p>
Finally, RCU's status as a synchronization primitive means that Finally, RCU's status as a synchronization primitive means that
any RCU failure can result in arbitrary memory corruption that can be any RCU failure can result in arbitrary memory corruption that can be
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment