Re: [RFC] doc: Improve rcu_dynticks::dynticks documentation
From: Paul E. McKenney
Date: Mon Jun 25 2018 - 00:07:01 EST
On Sun, Jun 24, 2018 at 12:34:51PM -0700, Joel Fernandes wrote:
> From: "Joel Fernandes (Google)" <joel@xxxxxxxxxxxxxxxxx>
>
> The very useful RCU Data-Structures describes that the dynticks counter
> of the rcu_dynticks data structure is incremented when we transitions to
> or from dynticks-idle mode. However it doesn't mention that it is also
> incremented due to transitions to and from user mode which for dynticks
> purposes is an extended quiescent state.
>
> I found this with tracing calls to rcu_dynticks_eqs_enter which can also
> happen from rcu_user_enter. Lets add this information to the
> Data-Structures document.
>
> Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
Good addition, queued, thank you!
Thanx, Paul
> ---
> .../RCU/Design/Data-Structures/Data-Structures.html | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.html b/Documentation/RCU/Design/Data-Structures/Data-Structures.html
> index f5120a00f511..50be87e59937 100644
> --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.html
> +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.html
> @@ -1227,9 +1227,11 @@ to overflow the counter, this approach corrects the
> CPU enters the idle loop from process context.
>
> </p><p>The <tt>->dynticks</tt> field counts the corresponding
> -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.
> +CPU's transitions to and from either dyntick-idle or user mode, so
> +that this counter has an even value when the CPU is in dyntick-idle
> +mode or user mode and an odd value otherwise. The transitions to/from
> +user mode need to be counted for user mode adaptive-ticks support
> +(see timers/NO_HZ.txt).
>
> </p><p>The <tt>->rcu_need_heavy_qs</tt> field is used
> to record the fact that the RCU core code would really like to
> --
> 2.18.0.rc2.346.g013aa6912e-goog
>