summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShreyansh Jain <shreyansh.jain@nxp.com>2016-07-12 15:14:43 +0530
committerThomas Monjalon <thomas.monjalon@6wind.com>2016-07-16 16:46:09 +0200
commitcdf5a9f354e3f3115615e86309c0a2f8e6f2858a (patch)
treee1dede2b50a432d3cac19f8c41af7ec3ebb8baed
parent2d6d5ebb9af1626c481e96ef07d4d0b654f2fe6a (diff)
downloaddpdk-cdf5a9f354e3f3115615e86309c0a2f8e6f2858a.zip
dpdk-cdf5a9f354e3f3115615e86309c0a2f8e6f2858a.tar.gz
dpdk-cdf5a9f354e3f3115615e86309c0a2f8e6f2858a.tar.xz
doc: fix consumer/producer mixup in ring guide
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: John McNamara <john.mcnamara@intel.com>
-rw-r--r--doc/guides/prog_guide/ring_lib.rst30
1 files changed, 15 insertions, 15 deletions
diff --git a/doc/guides/prog_guide/ring_lib.rst b/doc/guides/prog_guide/ring_lib.rst
index 3b92a8f..9f69753 100644
--- a/doc/guides/prog_guide/ring_lib.rst
+++ b/doc/guides/prog_guide/ring_lib.rst
@@ -252,8 +252,8 @@ In this example, only the producer head and tail (prod_head and prod_tail) are m
The initial state is to have a prod_head and prod_tail pointing at the same location.
-Multiple Consumer Enqueue First Step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple Producers Enqueue First Step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
On both cores, *ring->prod_head* and ring->cons_tail are copied in local variables.
The prod_next local variable points to the next element of the table,
@@ -266,11 +266,11 @@ If there is not enough room in the ring (this is detected by checking cons_tail)
.. figure:: img/ring-mp-enqueue1.*
- Multiple consumer enqueue first step
+ Multiple producer enqueue first step
-Multiple Consumer Enqueue Second Step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple Producers Enqueue Second Step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The second step is to modify ring->prod_head in the ring structure to point to the same location as prod_next.
This operation is done using a Compare And Swap (CAS) instruction, which does the following operations atomically:
@@ -288,11 +288,11 @@ In the figure, the operation succeeded on core 1, and step one restarted on core
.. figure:: img/ring-mp-enqueue2.*
- Multiple consumer enqueue second step
+ Multiple producer enqueue second step
-Multiple Consumer Enqueue Third Step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple Producers Enqueue Third Step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The CAS operation is retried on core 2 with success.
@@ -303,11 +303,11 @@ The core 1 updates one element of the ring(obj4), and the core 2 updates another
.. figure:: img/ring-mp-enqueue3.*
- Multiple consumer enqueue third step
+ Multiple producer enqueue third step
-Multiple Consumer Enqueue Fourth Step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple Producers Enqueue Fourth Step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Each core now wants to update ring->prod_tail.
A core can only update it if ring->prod_tail is equal to the prod_head local variable.
@@ -318,11 +318,11 @@ This is only true on core 1. The operation is finished on core 1.
.. figure:: img/ring-mp-enqueue4.*
- Multiple consumer enqueue fourth step
+ Multiple producer enqueue fourth step
-Multiple Consumer Enqueue Last Step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple Producers Enqueue Last Step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Once ring->prod_tail is updated by core 1, core 2 is allowed to update it too.
The operation is also finished on core 2.
@@ -332,7 +332,7 @@ The operation is also finished on core 2.
.. figure:: img/ring-mp-enqueue5.*
- Multiple consumer enqueue last step
+ Multiple producer enqueue last step
Modulo 32-bit Indexes