#
b5458e2c |
| 06-Dec-2024 |
Konstantin Ananyev <konstantin.ananyev@huawei.com> |
ring: introduce staged ordered ring
Staged-Ordered-Ring (SORING) provides a SW abstraction for 'ordered' queues with multiple processing 'stages'. It is based on conventional DPDK rte_ring, re-uses
ring: introduce staged ordered ring
Staged-Ordered-Ring (SORING) provides a SW abstraction for 'ordered' queues with multiple processing 'stages'. It is based on conventional DPDK rte_ring, re-uses many of its concepts, and even substantial part of its code. It can be viewed as an 'extension' of rte_ring functionality. In particular, main SORING properties: - circular ring buffer with fixed size objects - producer, consumer plus multiple processing stages in the middle. - allows to split objects processing into multiple stages. - objects remain in the same ring while moving from one stage to the other, initial order is preserved, no extra copying needed. - preserves the ingress order of objects within the queue across multiple stages, i.e.: at the same stage multiple threads can process objects from the ring in any order, but for the next stage objects will always appear in the original order. - each stage (and producer/consumer) can be served by single and/or multiple threads. - number of stages, size and number of objects in the ring are configurable at ring initialization time.
Data-path API provides four main operations: - enqueue/dequeue works in the same manner as for conventional rte_ring, all rte_ring synchronization types are supported. - acquire/release - for each stage there is an acquire (start) and release (finish) operation. after some objects are 'acquired' - given thread can safely assume that it has exclusive possession of these objects till 'release' for them is invoked. Note that right now user has to release exactly the same number of objects that was acquired before. After 'release', objects can be 'acquired' by next stage and/or dequeued by the consumer (in case of last stage).
Expected use-case: applications that uses pipeline model (probably with multiple stages) for packet processing, when preserving incoming packet order is important. I.E.: IPsec processing, etc.
Signed-off-by: Eimear Morrissey <eimear.morrissey@huawei.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
41dd9a6b |
| 08-Dec-2023 |
David Young <dave@youngcopy.com> |
doc: reorganize prog guide
Create categories in the index of the programmer's guide, sort chapters and rewrite some titles for consistency.
Subdirectories are created for ethdev and eventdev for gr
doc: reorganize prog guide
Create categories in the index of the programmer's guide, sort chapters and rewrite some titles for consistency.
Subdirectories are created for ethdev and eventdev for grouping the files together.
Useless link anchors at the beginning of files are removed, the corresponding :ref: are replaced with :doc: links.
Signed-off-by: David Young <dave@youngcopy.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
a2248c87 |
| 08-Apr-2022 |
Haiyue Wang <haiyue.wang@intel.com> |
ring: fix description
The index description isn't right, correct it as the Programmer's guide said.
Also correct the guide's figure description about 'Dequeue First Step'.
Fixes: 4a22e6ee3d2f ("do
ring: fix description
The index description isn't right, correct it as the Programmer's guide said.
Also correct the guide's figure description about 'Dequeue First Step'.
Fixes: 4a22e6ee3d2f ("doc: refactor figure numbers into references") Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
show more ...
|
#
47bec9a5 |
| 25-Oct-2020 |
Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> |
ring: add zero copy API
Add zero-copy APIs. These APIs provide the capability to copy the data to/from the ring memory directly, without having a temporary copy (for ex: an array of mbufs on the sta
ring: add zero copy API
Add zero-copy APIs. These APIs provide the capability to copy the data to/from the ring memory directly, without having a temporary copy (for ex: an array of mbufs on the stack). Use cases that involve copying large amount of data to/from the ring can benefit from these APIs.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
show more ...
|
#
e1187407 |
| 15-Jul-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
mempool/ring: support RTS and HTS ring modes
Two new sync modes were introduced into rte_ring: relaxed tail sync (RTS) and head/tail sync (HTS). This change provides user with ability to select thes
mempool/ring: support RTS and HTS ring modes
Two new sync modes were introduced into rte_ring: relaxed tail sync (RTS) and head/tail sync (HTS). This change provides user with ability to select these modes for ring based mempool via mempool ops API.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Gage Eads <gage.eads@intel.com>
show more ...
|
#
664ff4b1 |
| 20-Apr-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
ring: introduce peek style API
For rings with producer/consumer in RTE_RING_SYNC_ST, RTE_RING_SYNC_MT_HTS mode, provide an ability to split enqueue/dequeue operation into two phases: - enqueue
ring: introduce peek style API
For rings with producer/consumer in RTE_RING_SYNC_ST, RTE_RING_SYNC_MT_HTS mode, provide an ability to split enqueue/dequeue operation into two phases: - enqueue/dequeue start - enqueue/dequeue finish That allows user to inspect objects in the ring without removing them from it (aka MT safe peek).
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
show more ...
|
#
1cc363b8 |
| 20-Apr-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
ring: introduce HTS ring mode
Introduce head/tail sync mode for MT ring synchronization. In that mode enqueue/dequeue operation is fully serialized: only one thread at a time is allowed to perform g
ring: introduce HTS ring mode
Introduce head/tail sync mode for MT ring synchronization. In that mode enqueue/dequeue operation is fully serialized: only one thread at a time is allowed to perform given op. Suppose to reduce stall times in case when ring is used on overcommitted cpus (multiple active threads on the same cpu).
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
show more ...
|
#
e6ba4731 |
| 20-Apr-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
ring: introduce RTS ring mode
Introduce relaxed tail sync (RTS) mode for MT ring synchronization. Aim to reduce stall times in case when ring is used on overcommited cpus (multiple active threads on
ring: introduce RTS ring mode
Introduce relaxed tail sync (RTS) mode for MT ring synchronization. Aim to reduce stall times in case when ring is used on overcommited cpus (multiple active threads on the same cpu). The main difference from original MP/MC algorithm is that tail value is increased not by every thread that finished enqueue/dequeue, but only by the last one. That allows threads to avoid spinning on ring tail value, leaving actual tail value change to the last thread in the update queue.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
show more ...
|
#
ebff988d |
| 20-Apr-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
ring: prepare ring to allow new sync schemes
To make these preparations two main things are done: - Change from *single* to *sync_type* to allow different synchronisation schemes to be applied.
ring: prepare ring to allow new sync schemes
To make these preparations two main things are done: - Change from *single* to *sync_type* to allow different synchronisation schemes to be applied. Mark *single* as deprecated in comments. Add new functions to allow user to query ring sync types. Replace direct access to *single* with appropriate function call. - Move actual rte_ring and related structures definitions into a separate file: <rte_ring_core.h>. It allows to refer contents of <rte_ring_elem.h> from <rte_ring.h> without introducing a circular dependency.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
show more ...
|
#
e89680d0 |
| 31-Jan-2020 |
Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> |
doc: update ring guide
Changed the rte_ring chapter in programmer's guide to reflect the addition of rte_ring_xxx_elem APIs. References to pointers as ring elements is changed to generic term 'objec
doc: update ring guide
Changed the rte_ring chapter in programmer's guide to reflect the addition of rte_ring_xxx_elem APIs. References to pointers as ring elements is changed to generic term 'objects'.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com>
show more ...
|
#
5630257f |
| 01-Feb-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
doc: convert Intel license headers to SPDX tags
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
#
77dd3064 |
| 29-Mar-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
ring: remove watermark support
Remove the watermark support. A future commit will add support for having enqueue functions return the amount of free space in the ring, which will allow applications
ring: remove watermark support
Remove the watermark support. A future commit will add support for having enqueue functions return the amount of free space in the ring, which will allow applications to implement their own watermark checks, while also being more useful to the app.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
8c821989 |
| 29-Mar-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
ring: remove debug setting
The debug option only provided statistics to the user, most of which could be tracked by the application itself. Remove this as a compile time option, and feature, simplif
ring: remove debug setting
The debug option only provided statistics to the user, most of which could be tracked by the application itself. Remove this as a compile time option, and feature, simplifying the code.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
cdf5a9f3 |
| 12-Jul-2016 |
Shreyansh Jain <shreyansh.jain@nxp.com> |
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>
|
#
4a22e6ee |
| 18-May-2015 |
John McNamara <john.mcnamara@intel.com> |
doc: refactor figure numbers into references
This change adds automatic figure references to the docs. The figure numbers in the generated Html and PDF docs are now automatically numbered based on s
doc: refactor figure numbers into references
This change adds automatic figure references to the docs. The figure numbers in the generated Html and PDF docs are now automatically numbered based on section.
Requires Sphinx >= 1.3.1.
The patch makes the following changes.
* Changes image:: tag to figure:: and moves image caption to the figure.
* Adds captions to figures that didn't previously have any.
* Un-templates the |image-name| substitution definitions into explicit figure:: tags. They weren't used more than once anyway and Sphinx doesn't support them for figure.
* Adds a target to each image that didn't previously have one so that they can be cross-referenced.
* Renamed existing image target to match the image name for consistency.
* Replaces the Figures lists with automatic :numref: :ref: entries to generate automatic numbering and captions.
* Replaces "Figure" references with automatic :numref: references.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
show more ...
|
#
ba9e05cb |
| 03-Feb-2015 |
John McNamara <john.mcnamara@intel.com> |
doc: convert image extensions to wildcard
Changed all image.svg and image.png extensions to image.* This allows Sphinx to decide the appropriate image type from the available image options.
In case
doc: convert image extensions to wildcard
Changed all image.svg and image.png extensions to image.* This allows Sphinx to decide the appropriate image type from the available image options.
In case of PDF, SVG images are converted and Sphinx must pick the converted version.
Signed-off-by: John McNamara <john.mcnamara@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
show more ...
|
#
48624fd9 |
| 19-Dec-2014 |
Siobhan Butler <siobhan.a.butler@intel.com> |
doc: remove Intel references from prog guide
Removed redundant references to Intel(R) DPDK in Programmers Guide.
Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com> Acked-by: Bernard Iremong
doc: remove Intel references from prog guide
Removed redundant references to Intel(R) DPDK in Programmers Guide.
Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
show more ...
|
#
0058f08d |
| 09-Dec-2014 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
doc: fix typos in ring lib
Ring library section in PG had a couple of typos, in the text and in one of the images
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Bernard Ire
doc: fix typos in ring lib
Ring library section in PG had a couple of typos, in the text and in one of the images
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
show more ...
|
#
fc1f2750 |
| 14-Nov-2014 |
Bernard Iremonger <bernard.iremonger@intel.com> |
doc: programmers guide
The 1.7 DPDK_Prog_Guide document in MSWord has been converted to rst format for use with Sphinx. There is an rst file for each chapter and an index.rst file which contains the
doc: programmers guide
The 1.7 DPDK_Prog_Guide document in MSWord has been converted to rst format for use with Sphinx. There is an rst file for each chapter and an index.rst file which contains the table of contents. The top level index file has been modified to include this guide.
This document contains some png image files. If any of these png files are modified they should be replaced with an svg file.
This is the sixth document from a set of 6 documents.
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
show more ...
|