Re: [PATCH 2/2] Documentation: RCU: arrayRCU: Improve format for arrayRCU.rst

From: Paul E. McKenney
Date: Wed Nov 06 2019 - 03:50:24 EST


On Wed, Nov 06, 2019 at 02:59:27AM +0530, madhuparnabhowmik04@xxxxxxxxx wrote:
> From: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx>
>
> This patch adds cross-references and fixes a few formtting issues.
>
> Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx>

Hearing no objections, applied to be squashed into this commit:

7e42de651ffd ("Documentation: RCU: arrayRCU: Converted arrayRCU.txt
to arrayRCU.rst")

And with the addition of Phong's and Amol's Tested-by tags.

Thanx, Paul

> ---
> Documentation/RCU/arrayRCU.rst | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/RCU/arrayRCU.rst b/Documentation/RCU/arrayRCU.rst
> index ed5ae24b196e..30c007edfbfb 100644
> --- a/Documentation/RCU/arrayRCU.rst
> +++ b/Documentation/RCU/arrayRCU.rst
> @@ -6,16 +6,16 @@ Using RCU to Protect Read-Mostly Arrays
> Although RCU is more commonly used to protect linked lists, it can
> also be used to protect arrays. Three situations are as follows:
>
> -1. Hash Tables
> +1. :ref:`Hash Tables <hash_tables>`
>
> -2. Static Arrays
> +2. :ref:`Static Arrays <static_arrays>`
>
> -3. Resizeable Arrays
> +3. :ref:`Resizeable Arrays <resizeable_arrays>`
>
> Each of these three situations involves an RCU-protected pointer to an
> array that is separately indexed. It might be tempting to consider use
> of RCU to instead protect the index into an array, however, this use
> -case is -not- supported. The problem with RCU-protected indexes into
> +case is **not** supported. The problem with RCU-protected indexes into
> arrays is that compilers can play way too many optimization games with
> integers, which means that the rules governing handling of these indexes
> are far more trouble than they are worth. If RCU-protected indexes into
> @@ -26,6 +26,7 @@ to be safely used.
> That aside, each of the three RCU-protected pointer situations are
> described in the following sections.
>
> +.. _hash_tables:
>
> Situation 1: Hash Tables
> ------------------------
> @@ -35,6 +36,7 @@ has a linked-list hash chain. Each hash chain can be protected by RCU
> as described in the listRCU.txt document. This approach also applies
> to other array-of-list situations, such as radix trees.
>
> +.. _static_arrays:
>
> Situation 2: Static Arrays
> --------------------------
> @@ -50,6 +52,8 @@ Quick Quiz:
>
> :ref:`Answer to Quick Quiz <answer_quick_quiz_seqlock>`
>
> +.. _resizeable_arrays:
> +
> Situation 3: Resizeable Arrays
> ------------------------------
>
> @@ -66,7 +70,7 @@ the remainder of the new, updates the ids->entries pointer to point to
> the new array, and invokes ipc_rcu_putref() to free up the old array.
> Note that rcu_assign_pointer() is used to update the ids->entries pointer,
> which includes any memory barriers required on whatever architecture
> -you are running on.::
> +you are running on::
>
> static int grow_ary(struct ipc_ids* ids, int newsize)
> {
> @@ -118,7 +122,7 @@ a simple check suffices. The pointer to the structure corresponding
> to the desired IPC object is placed in "out", with NULL indicating
> a non-existent entry. After acquiring "out->lock", the "out->deleted"
> flag indicates whether the IPC object is in the process of being
> -deleted, and, if not, the pointer is returned.::
> +deleted, and, if not, the pointer is returned::
>
> struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id)
> {
> --
> 2.17.1
>