Thread (102 messages) 102 messages, 10 authors, 2023-10-12

Re: [dpdk-dev] [RFC] eventdev: introduce event dispatcher

From: Mattias Rönnblom <hidden>
Date: 2021-02-26 07:48:32

On 2021-02-22 16:28, Luca Boccassi wrote:
On Thu, 2021-02-18 at 19:30 +0100, Mattias Rönnblom wrote:
quoted
The purpose of the event dispatcher is primarily to decouple different
parts of an application (e.g., processing pipeline stages), which
share the same underlying event device.

The event dispatcher replaces the conditional logic (often, a switch
statement) that typically follows an event device dequeue operation,
where events are dispatched to different parts of the application
based on the destination queue id.

The concept is similar to a UNIX file descriptor event loop library.
Instead of tying callback functions to fds as for example libevent
does, the event dispatcher binds callbacks to queue ids.

An event dispatcher is configured to dequeue events from a specific
event device, and ties into the service core framework, to do its (and
the application's) work.

The event dispatcher provides a convenient way for an eventdev-based
application to use service cores for application-level processing, and
thus for sharing those cores with other DPDK services.

Signed-off-by: Mattias Rönnblom <redacted>
---
  lib/librte_eventdev/Makefile                 |   2 +
  lib/librte_eventdev/meson.build              |   6 +-
  lib/librte_eventdev/rte_event_dispatcher.c   | 420 +++++++++++++++++++
  lib/librte_eventdev/rte_event_dispatcher.h   | 251 +++++++++++
  lib/librte_eventdev/rte_eventdev_version.map |  10 +
  5 files changed, 687 insertions(+), 2 deletions(-)
  create mode 100644 lib/librte_eventdev/rte_event_dispatcher.c
  create mode 100644 lib/librte_eventdev/rte_event_dispatcher.h
Hi,

Is this intended to be used by applications or by PMDs? If the former,
then IMHO the interface should really be based around (or allow using)
FDs, so that it can be polled. Applications normally have more event
sources that just DPDK.
It's for applications. File descriptors might be involved in the API 
somehow, but I think for most applications, they are too costly. I mean, 
the whole point of DPDK is to avoid the operating system overhead.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help