On 2024-06-08 08:14, Jerin Jacob wrote:
On Fri, Jun 7, 2024 at 7:17 PM Mattias Rönnblom
<mattias.ronnb...@ericsson.com> wrote:

Add the RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE capability to the
DSW event device.

This feature may be used by an EAL thread to pull more work from the
work scheduler, without giving up the option to forward events
originating from a previous dequeue batch. This in turn allows an EAL
thread to be productive while waiting for a hardware accelerator to
complete some operation.

Prior to this change, DSW didn't make any distinction between
RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_NEW type events, other than that
new events would be backpressured earlier.

After this change, DSW tracks the number of released events (i.e.,
events of type RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_RELEASE) that has
been enqueued.

For efficiency reasons, DSW does not track the identity of individual
events. This in turn implies that a certain stage in the flow
migration process, DSW must wait for all pending releases (on the
migration source port, only) to be received from the application, to
assure that no event pertaining to any of the to-be-migrated flows are
being processed.

With this change, DSW starts making a distinction between forward and
new type events for credit allocation purposes. Only RTE_EVENT_OP_NEW
events needs credits. All events marked as RTE_EVENT_OP_FORWARD must
have a corresponding dequeued event from a previous dequeue batch.

Flow migration for flows on RTE_SCHED_TYPE_PARALLEL queues remains
unaffected by this change.

A side-effect of the tweaked DSW migration logic is that the migration
latency is reduced, regardless if implicit release is enabled or not.

Another side-effect is that migrated flows are now not processed
during any part of the migration procedure. An upside of this change
it reduces the load of the overloaded port. A downside is it
introduces slightly more jitter for the migrated flows.

This patch is contains various minor refactorings, improved
formatting, fixed spelling, and the removal of unnessary memory
barriers.

Move changelog after ---


I never remember where it should go, so I checked an old patch of mine, were I also got it wrong...

Anyway, thanks.


v3:
  * Fix broken RTE_ASSERT()s. (Jerin Jacob)

v2:
   * Remove redundant memory barriers.
   * Discontinue processing of migrated flows throughout the migration
     procedure. This is a part of a fix to address a reordering issue
     v1 of this patch introduced.
   * Added entry in the release notes.
   * Fix spelling issues in commit message.

Signed-off-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com>
---
  doc/guides/rel_notes/release_24_07.rst |   7 +
  drivers/event/dsw/dsw_evdev.c          |   8 +-
  drivers/event/dsw/dsw_evdev.h          |   7 +-
  drivers/event/dsw/dsw_event.c          | 405 ++++++++++++++-----------
  4 files changed, 254 insertions(+), 173 deletions(-)

diff --git a/doc/guides/rel_notes/release_24_07.rst 
b/doc/guides/rel_notes/release_24_07.rst
index a69f24cf99..706cc71212 100644
--- a/doc/guides/rel_notes/release_24_07.rst
+++ b/doc/guides/rel_notes/release_24_07.rst
@@ -24,6 +24,13 @@ DPDK Release 24.07
  New Features
  ------------

+* **Updated the DSW event device.**
+
+  * Added support for ``RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE``,
+    allowing applications to take on new tasks without having completed
+    (released) the previous event batch. This in turn facilities DSW
+    use alongside high-latency look-aside hardware accelerators.
+
  .. This section should contain new features added in this release.
     Sample format:

Update should be here(after the template).


Fixed above issues and applied to dpdk-next-eventdev/for-main. Thanks

Reply via email to