Thread (41 messages) flat view 41 messages, 6 authors, 2017-09-04

Re: [PATCH 1/2] eventdev: add event adapter for ethernet Rx queues

From: Jerin Jacob <hidden>
Date: 2017-07-06 14:19:04

-----Original Message-----
Date: Fri, 7 Jul 2017 03:22:31 +0530
From: Nikhil Rao <redacted>
To: jerin.jacob@caviumnetworks.com
CC: gage.eads@intel.com, dev@dpdk.org, thomas@monjalon.net,
 bruce.richardson@intel.com, harry.van.haaren@intel.com,
 hemant.agrawal@nxp.com, nipun.gupta@nxp.com, narender.vangati@intel.com,
 Nikhil Rao [off-list ref], Abhinandan Gujjar
 [off-list ref]
Subject: [PATCH 1/2] eventdev: add event adapter for ethernet Rx queues
X-Mailer: git-send-email 2.7.4

Eventdev-based networking applications require a component to dequeue
packets from NIC Rx queues and inject them into eventdev queues[1]. While
some platforms (e.g. Cavium Octeontx) do this operation in hardware, other
platforms use software.

This patchset introduces an ethernet Rx event adapter that dequeues packets
from ethernet devices and enqueues them to event devices. It is based on
a previous RFC[2].

The adapter is designed to work with the EAL service core[3]. If
an application determines that the adapter is required, it can register and
launch it on a service core. Alternatively, this adapter can serve as a
template for applications to design customer ethernet Rx event adapters
better suited to their needs.

The adapter can service multiple ethernet devices and queues. Each queue is
configured with a servicing weight to control the relative frequency with
which the adapter polls the queue, and the event fields to use when
constructing packet events. The adapter has two modes for programming an
event's flow ID: use a static per-queue user-specified value or use the RSS
hash.

A detailed description of the adapter is contained in the header's
comments.

[1] http://dpdk.org/ml/archives/dev/2017-May/065341.html
[2] http://dpdk.org/ml/archives/dev/2017-May/065539.html
[3] http://dpdk.org/ml/archives/dev/2017-July/069782.html

Signed-off-by: Nikhil Rao <redacted>
Signed-off-by: Gage Eads <redacted>
Signed-off-by: Abhinandan Gujjar <redacted>
---

Thanks Nikhil for the patch.

Looks like you missed this email?
http://dpdk.org/ml/archives/dev/2017-June/068142.html

Can we make it as function pointer based approach(keeping all adapter functions
function prototype required for SW PMD) so that each PMD
can register the ops for adapter_create etc so that same API can be used
for software and hardware PMDs(the scheme like rte_flow() or rte_tm()
approach)

Can discuss more on that to finalize the approach?
v2:
Thanks Jerin for review - below is a list of changes you
suggested.

- all public symbols are started with rte_event_.
- Add Doxygen reference with @see.
- Mention setting of ev.event_type.
- Mention adapter to service function mapping.
- Remove rte_eth_rx_event_adapter_dev_add/del().
- Change rx_queuee_id to int32_t and use -1 to denote all Rx queues.
- Add rte_eth_event_rx_queue_del().

Other changes
- Remove adapter's run function (rte_event_eth_rx_adapter_run()) from
  the public interface. The adapter internally uses it to create a
  service.
- Add a blocked cycle count to stats. Further description is contained
  in the header.
- Minor struct renames rte_event_eth_rx_adapter_config -> .._conf
---
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help