diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-01-27 03:18:07 +0300 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-04-18 21:38:17 +0300 |
commit | 9577df9a3122af08fff84b8a1a60dccf524a3891 (patch) | |
tree | 3c5f01e4cbdef694343d839b696a5ecbeb66472f /Documentation/RCU/Design/Data-Structures | |
parent | abb06b99484a9f5af05c7147c289faf835f68e8e (diff) | |
download | linux-9577df9a3122af08fff84b8a1a60dccf524a3891.tar.xz |
rcu: Pull rcu_qs_ctr into rcu_dynticks structure
The rcu_qs_ctr variable is yet another isolated per-CPU variable,
so this commit pulls it into the pre-existing rcu_dynticks per-CPU
structure.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU/Design/Data-Structures')
-rw-r--r-- | Documentation/RCU/Design/Data-Structures/Data-Structures.html | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.html b/Documentation/RCU/Design/Data-Structures/Data-Structures.html index bf7f266e8888..3d0311657533 100644 --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.html +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.html @@ -1105,6 +1105,7 @@ Its fields are as follows: 2 int dynticks_nmi_nesting; 3 atomic_t dynticks; 4 int rcu_sched_qs_mask; + 5 unsigned long rcu_qs_ctr; </pre> <p>The <tt>->dynticks_nesting</tt> field counts the @@ -1123,12 +1124,19 @@ CPU's transitions to and from dyntick-idle mode, so that this counter has an even value when the CPU is in dyntick-idle mode and an odd value otherwise. -</p><p>Finally, the <tt>->rcu_sched_qs_mask</tt> field is used +</p><p>The <tt>->rcu_sched_qs_mask</tt> field is used to record the fact that the RCU core code would really like to -see a quiescent state from the corresponding CPU. +see a quiescent state from the corresponding CPU, so much so that +it is willing to call for heavy-weight dyntick-counter operations. This flag is checked by RCU's context-switch and <tt>cond_resched()</tt> code, which provide a momentary idle sojourn in response. +</p><p>Finally the <tt>->rcu_qs_ctr</tt> field is used to record +quiescent states from <tt>cond_resched()</tt>. +Because <tt>cond_resched()</tt> can execute quite frequently, this +must be quite lightweight, as in a non-atomic increment of this +per-CPU field. + <table> <tr><th> </th></tr> <tr><th align="left">Quick Quiz:</th></tr> |