On Mon, Oct 7, 2024 at 7:31 AM Abdullah Sevincer <abdullah.sevin...@intel.com> wrote: > > Support for independent enqueue feature and updates Event Device > and PMD feature list. > > A new capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ is introduced. It > allows out-of-order enqueuing of RTE_EVENT_OP_FORWARD or RELEASE type > events on an event port where this capability is enabled. > > To use this capability applications need to set flag > RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ during port setup only if the > capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ exists. > > Signed-off-by: Abdullah Sevincer <abdullah.sevin...@intel.com> > Acked-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com> > --- > doc/guides/eventdevs/features/default.ini | 1 + > doc/guides/eventdevs/features/dlb2.ini | 1 + > doc/guides/prog_guide/eventdev/eventdev.rst | 27 ++++++++++++++++++ > doc/guides/rel_notes/release_24_11.rst | 8 ++++++ > lib/eventdev/rte_eventdev.h | 31 +++++++++++++++++++++ > 5 files changed, 68 insertions(+) > > diff --git a/doc/guides/eventdevs/features/default.ini > b/doc/guides/eventdevs/features/default.ini > index 1cc4303fe5..7c4ee99238 100644 > --- a/doc/guides/eventdevs/features/default.ini > +++ b/doc/guides/eventdevs/features/default.ini > @@ -22,6 +22,7 @@ carry_flow_id = > maintenance_free = > runtime_queue_attr = > profile_links = > +independent_enq = > > ; > ; Features of a default Ethernet Rx adapter. > diff --git a/doc/guides/eventdevs/features/dlb2.ini > b/doc/guides/eventdevs/features/dlb2.ini
Why adding dlb2.ini update in 1/3. Move to 2/3. Also add the same for DSW in 3/3. > index 7b80286927..c7193b47c1 100644 > --- a/doc/guides/eventdevs/features/dlb2.ini > +++ b/doc/guides/eventdevs/features/dlb2.ini > @@ -15,6 +15,7 @@ implicit_release_disable = Y > runtime_port_link = Y > multiple_queue_port = Y > maintenance_free = Y > +independent_enq = Y > > [Eth Rx adapter Features] > > diff --git a/doc/guides/prog_guide/eventdev/eventdev.rst > b/doc/guides/prog_guide/eventdev/eventdev.rst > index fb6dfce102..ab53fe4e6c 100644 > --- a/doc/guides/prog_guide/eventdev/eventdev.rst > +++ b/doc/guides/prog_guide/eventdev/eventdev.rst > @@ -472,6 +472,33 @@ A flush callback can be passed to the function to handle > any outstanding events. > > Invocation of this API does not affect the existing port > configuration. > > +Independent Enqueue Capability > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +This capability applies to eventdev devices that expects all forwarded > events to be > +enqueued in the same order as they are dequeued. For dropped events, their > +releases should come at the same location as the original event was expected. > +The eventdev device has this restriction as it uses the order to retrieve > information about > +the original event that was sent to the CPU. This contains information like > atomic > +flow ID to release the flow lock and ordered events sequence number to > restore the > +original order. > + > +This capability only matters to eventdevs supporting burst mode. On ports > where > +the application is going to change enqueue order, > +``RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ`` support should be enabled. > + > +Example code to inform PMD that the application plans to use independent > enqueue > +order on a port: > + > + .. code-block:: c > + > + if (capability & RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ) > + port_config = port_config | RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ; > + The below section does not have any code. It is an orphan section. Move _below section_(only below) along with code in 2/3 patch to doc/guides/eventdevs/dlb2.rst as it is not specific generic. > +This code example enables enqueue event reordering inside PMD before the > events > +are sent to the hardware. If the application is not going to change the > enqueue > +order, this flag should not be enabled to get better performance. PLEASE PAY SOME ATTENTION before sending the next version. I am repeating the same.