[dpdk-dev] [PATCH v2] rte_ring: clarify preemptible nature of ring algorithm

Honnappa Nagarahalli Honnappa.Nagarahalli at arm.com
Tue May 29 18:36:23 CEST 2018


I do not see the documentation regarding this in programmer's guide.

-----Original Message-----
From: Burakov, Anatoly <anatoly.burakov at intel.com>
Sent: Tuesday, May 29, 2018 4:10 AM
To: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>; olivier.matz at 6wind.com
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH v2] rte_ring: clarify preemptible nature of ring algorithm

On 29-May-18 6:28 AM, Honnappa Nagarahalli wrote:
> rte_ring implementation is not preemptible only under certain
> circumstances. This clarification is helpful for data plane and
> control plane communication using rte_ring.
>
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> Reviewed-by: Gavin Hu <gavin.hu at arm.com>
> Reviewed-by: Ola Liljedahl <ola.liljedahl at arm.com>
> ---
> v2:
> * Fixed checkpatch warnings
>
>   lib/librte_ring/rte_ring.h | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h
> index d3d3f7f..2f9c945 100644
> --- a/lib/librte_ring/rte_ring.h
> +++ b/lib/librte_ring/rte_ring.h
> @@ -26,8 +26,13 @@
>    * - Bulk dequeue.
>    * - Bulk enqueue.
>    *
> - * Note: the ring implementation is not preemptable. A lcore must not
> - * be interrupted by another task that uses the same ring.
> + * Note: the ring implementation can block threads from completing
> + their
> + * operation under the following circumstances.
> + * A preempted thread can block other threads (operating on the same
> + ring)
> + * from completing their operations, only if those threads are
> + performing
> + * the same ring operation (enqueue/dequeue) as the preempted thread.
> + * In other words, a preempted consumer thread will not block any
> + producer
> + * threads and vice versa.
>    *
>    */
>
>

Similar clarification is already present in Programmer's Guide for rte_ring section. Perhaps it would be good to reference it here?

--
Thanks,
Anatoly
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


More information about the dev mailing list